/// <summary> /// Méthode qui créé des terrains /// </summary> /// <returns></returns> public static ListTerrain CreationDeTerrains() { ListTerrain ListeTerrains = new ListTerrain(); if (File.Exists("terrains.bin")) //Cherche si le fichier terrains.bin existe car si il existe il y a des données donc il faut les charger { ListeTerrains.Chargement(); //Ici on charge les données des personnages si elles existent dans le fichier } else //Sinon éxecuter l'instanciation des terrains (que au premier lancement sauf si suppression du fichier terrains.bin) { Terrain t1 = new Terrain("Smash Ville", false, "/Images;component/Terrains/Smash_Ville.png"); Terrain t2 = new Terrain("Destination finale", false, "/Images;component/Terrains/Destination_finale.jpg"); Terrain t3 = new Terrain("Yoshi Story", false, "/Images;component/Terrains/Yoshi_Story.png"); Terrain t4 = new Terrain("Champ de bataille", false, "/Images;component/Terrains/Champ_de_Bataille.png"); Terrain t5 = new Terrain("Ile de Yoshi", false, "/Images;component/Terrains/Ile_de_Yoshi.png"); Terrain t6 = new Terrain("Ligue Pokemon de Kalos", false, "/Images;component/Terrains/Ligue_Pokemon_de_Kalos.png"); Terrain t7 = new Terrain("Stade Pokemon 2", false, "/Images;component/Terrains/Stade_Pokemon_2.png"); Terrain t8 = new Terrain("Traversee de Lylat", false, "/Images;component/Terrains/Traversee_de_Lylat.jpg"); Terrain t9 = new Terrain("Ville et Centre-ville", false, "/Images;component/Terrains/Ville_et_Centre-Ville.jpg"); ListeTerrains.ListeDesTerrains.Add(t1); ListeTerrains.ListeDesTerrains.Add(t2); ListeTerrains.ListeDesTerrains.Add(t3); ListeTerrains.ListeDesTerrains.Add(t4); ListeTerrains.ListeDesTerrains.Add(t5); ListeTerrains.ListeDesTerrains.Add(t6); ListeTerrains.ListeDesTerrains.Add(t7); ListeTerrains.ListeDesTerrains.Add(t8); ListeTerrains.ListeDesTerrains.Add(t9); } return(ListeTerrains); }
/// <summary> /// Méthode du bouton pour modifier un personnage /// Cette méthode va tout comme la méthode BoutonAjouterPerso dans AjouterPerso.xaml.cs vérifier si les textbox ne sont pas nulles et si les 3 terrains favoris sélectionnés sont bien différents /// Puis elle va instancier un personnage et remplacer ses attributs actuels par ceux saisis dans les textbox /// Une messagebox va s'afficher pour confirmer la modification du personnage si celui-ci est modifié. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void BoutonModifPerso(object sender, RoutedEventArgs e) { if (Nom.Text == null) { MessageBox.Show("Ecrire un nom"); } else if (Numero.Text == null) { MessageBox.Show("Saisir un numéro"); } else if (SerieOrigine.Text == null) { MessageBox.Show("Ecrire une série d'origine"); } else if (Poids.Text == null) { MessageBox.Show("Saisir un poids"); } else if (Move.Text == null) { MessageBox.Show("Ecrire un move"); } else if (leterrain1.SelectedItem == null || leterrainN2.SelectedItem == null || leterrain3.SelectedItem == null || leterrain1.SelectedItem == leterrainN2.SelectedItem || leterrain1.SelectedItem == leterrain3.SelectedItem || leterrainN2.SelectedItem == leterrain3.SelectedItem) { MessageBox.Show("Veuillez Sélectionner des terrains différents"); } else { ListTerrain lesterrains = new ListTerrain(); lesterrains.ListeDesTerrains.Add(ter1); lesterrains.ListeDesTerrains.Add(ter2); lesterrains.ListeDesTerrains.Add(ter3); int Numperso = int.Parse(Numero.Text); //convertir le string en int int PoidsPerso = int.Parse(Poids.Text); Personnage Bot = new Personnage(ImgPers, lesterrains.ListeDesTerrains, Nom.Text, Numperso, SerieOrigine.Text, PoidsPerso, Move.Text); int NumpersoInt = int.Parse(Numero.Text); //convertir le string en int int PoidsPersoInt = int.Parse(Poids.Text); persomodif.NomPerso = Nom.Text; //Le nom du personnage modifié est égal au nom du personnage saisi dans la textbox persomodif.Numero = NumpersoInt; persomodif.SerieOrigine = SerieOrigine.Text; persomodif.Poids = PoidsPersoInt; persomodif.MoveLePlusRapide = Move.Text; if (ImgPers != null) { persomodif.ImagePersoSource = ImgPers; } persomodif.TerrainsAv = lesterrains.ListeDesTerrains; MessageBox.Show($"Personnage {Bot.NomPerso} modifié"); } }
/// <summary> /// Méthode Bouton pour ajouter un personnage /// Cette méthode vérifie si aucune textbox est vide et si l'utilisateur a bien sélectionné une image, elle vérifie aussi si l'utilisateur sélectionne bien 3 terrains favoris pour le personnage /// et bien 3 terrains différents pour ensuite ajouter ces terrains à la liste des terrains du constructeur du personnage /// Enfin un personnage est instancié et ajouté à la listepersos des personnages. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void BoutonAjouterPerso(object sender, RoutedEventArgs e) { if (Nom.Text == null) { MessageBox.Show("Ecrire un nom"); } else if (Numero.Text.ToString() == "") { MessageBox.Show("Saisir un numéro"); } else if (ImgPers == null) { MessageBox.Show("Sélectionner une image"); } else if (SerieOrigine.Text == null) { MessageBox.Show("Ecrire une série d'origine"); } else if (Poids.Text.ToString() == "") { MessageBox.Show("Saisir un poids"); } else if (Move.Text == null) { MessageBox.Show("Ecrire un move"); } else if (leterrain1.SelectedItem == null || leterrainN2.SelectedItem == null || leterrain3.SelectedItem == null || leterrain1.SelectedItem == leterrainN2.SelectedItem || leterrain1.SelectedItem == leterrain3.SelectedItem || leterrainN2.SelectedItem == leterrain3.SelectedItem) { MessageBox.Show("Veuillez Sélectionner des terrains différents"); } else { ListTerrain lesterrains = new ListTerrain(); //instanciation de la listeterrains pour ajouter les 3 terrans favoris du personnage lesterrains.ListeDesTerrains.Add(ter1); lesterrains.ListeDesTerrains.Add(ter2); lesterrains.ListeDesTerrains.Add(ter3); int Numperso = int.Parse(Numero.Text); //convertir le string en int int PoidsPerso = int.Parse(Poids.Text); Personnage Bot = new Personnage(ImgPers, lesterrains.ListeDesTerrains, Nom.Text, Numperso, SerieOrigine.Text, PoidsPerso, Move.Text); //Instanciation du personnage pour l'ajouter à la liste avec les données saisies (Application.Current as App).lespersos.ListeDesPersos.Add(Bot); //Ajout du personnage à la liste MessageBox.Show($"Personnage {Bot.NomPerso} créé"); } }
/// <summary> /// Méthode qui créé les 3 terrains favoris des personnages au hasard /// </summary> /// <returns></returns> public static ObservableCollection <Terrain> CreationDeTerrainsFavorisRandom() { ObservableCollection <Terrain> ListeTerrains = new ObservableCollection <Terrain>(); //On créé la liste des terrains favoris ListTerrain ListeComplete = CreationDeTerrains(); //Création de tout les terrains de l'application Random random = new Random(); //On instancie Random int numrang; //création des rangs qui vont être sélectionnés au hasard, 1 rang correspond à un des trois terrains favoris int numrang2; int numrang3; numrang = random.Next(0, ListeComplete.ListeDesTerrains.Count - 1); //On créé un nombre au hasard entre 0 (début liste) et le nombre de terrains totaux de l'application ListeTerrains.Add(ListeComplete.ListeDesTerrains[numrang]); //On ajoute ce nombre à la liste des terrains favoris numrang2 = random.Next(0, ListeComplete.ListeDesTerrains.Count - 1); //On recréé un nombre au hasard entre 0 (début liste) et le nombre de terrains totaux de l'application if (numrang2 == numrang) //Si le nombre du terrain2 est égal au terrain 3 alors { while (numrang2 == numrang) //tant qu'ils sont égaux { numrang2 = random.Next(0, ListeComplete.ListeDesTerrains.Count - 1); //On créé un nombre au hasard } } ListeTerrains.Add(ListeComplete.ListeDesTerrains[numrang2]); //Puis on ajoute ce nombre à la liste des terrains favoris et on répète le processus pour le terrain3 numrang3 = random.Next(0, ListeComplete.ListeDesTerrains.Count - 1); if (numrang3 == numrang || numrang3 == numrang2) { while (numrang3 == numrang || numrang3 == numrang2) { numrang3 = random.Next(0, ListeComplete.ListeDesTerrains.Count - 1); } } ListeTerrains.Add(ListeComplete.ListeDesTerrains[numrang3]); return(ListeTerrains); //Retourne la liste des 3 terrains favoris du personnage sélectionés au hasard }