/** * Constructeur de la classe Joueur * t Le type du peuple * nb Le nombre d'unites a creer * c La coordonnee a laquelle seront placees les unites au depart * /!\ Cette case ne doit pas contenir d'unites enemies */ public Joueur(TypePeuple t, int nb, Coordonnee c) { this._id = NOMBREJOUEUR++; this._peuple = new Peuple(t, nb, this._id, c); // Mise a zero du compteur de joueurs this._cptTourJoueurs = 0; }
public Personnage(string nom, int agilite, int chance, int force, int pointDeVie, int pointDeVieMaximum, Peuple peuple, Class classe, Genre genre) { this.pointDeVie = pointDeVie; this.pointDeVieMaximun = pointDeVieMaximum; this.force = force; this.agilite = agilite; this.nom = nom; this.chance = chance; this.peuple = peuple; this.classe = classe; this.genre = genre; }
public Personnage(int pointsDeVieMaximum, Caractère caractère, classe classe, int force, int agilité, string nom, Peuple peuple, int chance) { this.pointsDeVie = pointsDeVieMaximum; this.pointsDeVieMaximum = pointsDeVieMaximum; this.force = force; this.agilité = agilité; this.nom = nom; this.peuple = peuple; this.chance = chance; this.classe = classe; this.caractère = caractère; this.etat = Etat.ok; }
public Personnage(string nom) { Random rnd = new Random(); this.nom = nom; this.peuple = (Peuple)rnd.Next(0, 8); this.classe = (classe)rnd.Next(0, 3); this.caractère = (Caractère)rnd.Next(0, 2); this.force = rnd.Next(6, 15); this.agilité = rnd.Next(6, 15); this.chance = rnd.Next(6, 15); this.pointsDeVieMaximum = rnd.Next(6, 15); this.pointsDeVie = pointsDeVieMaximum; }
public Personnage(string nom) { this.agilite = random.Next(6, 15); this.chance = random.Next(6, 15); this.force = random.Next(6, 15); this.endurance = random.Next(6, 15); this.etatSante = "ok"; this.pointDeVieMaximum = random.Next(6, 15); this.pointDeVie = pointDeVieMaximum; this.peuple = (Peuple)random.Next(0, 8); this.classe = (Class)random.Next(0, 3); this.mentalite = (Mental)random.Next(0, 2); this.nom = nom; }
public Personnage(int agilite, int chance, int force, int endurance, int pointDeVieMaximum, Peuple peuple, Class classe, Mental mentalite, string nom) { this.agilite = agilite; this.chance = chance; this.force = force; this.endurance = endurance; this.etatSante = "ok"; this.pointDeVieMaximum = pointDeVieMaximum; this.pointDeVie = pointDeVieMaximum; this.peuple = peuple; this.classe = classe; this.mentalite = mentalite; this.nom = nom; }
public Personnage(int pointsDeVieMaximum, int force, int agilite, string nom, Peuple peuple, int chance, Class classPersonnage, int vitalite, int intelligence, Alignement alignement) { this.pointsDeVie = pointsDeVieMaximum; this.pointsDeVieMaximum = pointsDeVieMaximum; this.force = force; this.agilite = agilite; this.peuple = peuple; this.nom = nom; this.chance = chance; this.classPersonnage = classPersonnage; this.vitalite = vitalite; this.intelligence = intelligence; this.alignement = alignement; }
public Personnage(string nom) { Random r = new Random(); this.nom = nom; this.pointDeVieMaximun = r.Next(6, 15); this.pointDeVie = this.pointDeVieMaximun; this.force = r.Next(6, 15); this.agilite = r.Next(6, 15); this.nom = nom; this.chance = r.Next(6, 15); this.peuple = (Peuple)r.Next(0, 7); this.classe = (Class)r.Next(0, 3); this.genre = (Genre)r.Next(0, 3);; }
public Personnage(string nom) { Random r = new Random(); this.pointsDeVie = pointsDeVieMaximum; this.pointsDeVieMaximum = r.Next(6, 15); this.force = r.Next(6, 15); this.agilite = r.Next(6, 15); this.peuple = (Peuple)r.Next(0, 7); this.nom = nom; this.chance = r.Next(6, 15); this.classPersonnage = (Class)r.Next(0, 3); this.vitalite = r.Next(6, 15); this.intelligence = r.Next(6, 15); this.alignement = (Alignement)r.Next(0, 2); }
/// <summary> /// Effectue le traitement lorsqu'un utilisateur clique sur une case /// </summary> /// <param name ="column">la colonne de la case</param> /// <param name ="row">la ligne de la case </param> /// <param name ="unitSelected">la nième unité de la case</param> unsafe private void traitement(int column, int row, int unitSelected) { int x1 = 0, y1 = 0, x2 = 0, y2 = 0; Case.etatCase etat = MaPartie.getCarte().getCase(column, row).getEtatOccupation(); if (!(etat == Case.etatCase.libre)) { List <UniteDeBase> listUnite = MaPartie.getCarte().getCase(column, row).getUnitsOnCase(); changeListeViewUnite(listUnite[unitSelected]); setGen(); UniteDeBase u = listUnite[unitSelected]; listUnite.RemoveAt(unitSelected); listUnite.Insert(0, u); } else { initListUnite(); } // la var etat est soit libre soit joueur1 soit joueur2 SelectionOperateur.etatSelection etatSelection = MaPartie.getSelectionOperateur().getEtatSelection(); // la var etatSelection est soit RienEstSelectionne soit UniteDeDepartDelectionnee soit UniteDarriveeSelectionnee //(normalement l'utilisateur n'aura pas le temps de cliquer sur quoi que ce soit lors de la transition de l'etat UniteDarriveeSelectionnee vers RienEstSelectionne) switch (etat) { case Case.etatCase.libre: if (etatSelection != SelectionOperateur.etatSelection.UniteDeDepartDelectionnee) { MessageBox.Show("Attention, vous avez sélectionné une case vide !"); // se produit surtout quand on est dans l'etat RienEstSelectionne et que l'on essaie de jouer une case qui est vide... MaPartie.getSelectionOperateur().FinDeSelection(); } else //ici on est sur d'être dans l'etat UniteDeDepartDelectionnee { // MessageBox.Show("Vous déplacez votre unité vers une case vide."); MaPartie.getSelectionOperateur().selectCase(column, row); // donc ici on passe dans l'etat UniteDarriveeSelectionnee MaPartie.getSelectionOperateur().getSelectedCases(&x1, &y1, &x2, &y2); //donc il n'y a pas besoin de vérifier isSecondSelection1 cependant il faut conserver l'opération getSelectedCase Case casedep = MaPartie.getCarte().getCase(x1, y1); Case casearr = MaPartie.getCarte().getCase(x2, y2); Peuple p; Joueur j; int numJoueur; if (MaPartie.getJoueur1ALaMain()) { p = MaPartie.joueur1.getPeuple(); j = MaPartie.joueur1; numJoueur = 1; } else { p = MaPartie.joueur2.getPeuple(); j = MaPartie.joueur2; numJoueur = 2; } MaPartie.getCarte().moveProcessing(x1, y1, x2, y2, casedep, casearr, p.nomPeuple, j, numJoueur); clearEllipses(); updateGraphiqueUnite(MaPartie.joueur1, 1); updateGraphiqueUnite(MaPartie.joueur2, 2); } break; case Case.etatCase.joueur1: if (!MaPartie.getJoueur1ALaMain()) { //le joueur2 a cliqué sur une case du joueur1 if (etatSelection != SelectionOperateur.etatSelection.UniteDeDepartDelectionnee) { MessageBox.Show("Attention vous avez sélectionné une case appartenant au joueur adverse !"); MaPartie.getSelectionOperateur().FinDeSelection(); } else { MaPartie.getSelectionOperateur().selectCase(column, row); MaPartie.getSelectionOperateur().getSelectedCases(&x1, &y1, &x2, &y2); Case casedep = MaPartie.getCarte().getCase(x1, y1); Case casearr = MaPartie.getCarte().getCase(x2, y2); Peuple p = MaPartie.joueur2.getPeuple(); Boolean doitSeDeplacer = MaPartie.getCarte().fightProcessing(x1, y1, x2, y2, casedep, casearr, p.nomPeuple, MaPartie.joueur2, MaPartie.joueur1); if (doitSeDeplacer) { MessageBox.Show("Vous avez déclenché un combat !"); } if (MaPartie.joueur2.getUnite().Count == 0 || MaPartie.joueur1.getUnite().Count == 0) { MessageBox.Show("La Partie est finie !"); MessageBox.Show(MaPartie.evaluerFinDePartie()); } if (doitSeDeplacer) { MaPartie.getCarte().moveProcessing(x1, y1, x2, y2, casedep, casearr, p.nomPeuple, MaPartie.joueur2, 2); } clearEllipses(); updateGraphiqueUnite(MaPartie.joueur1, 1); updateGraphiqueUnite(MaPartie.joueur2, 2); } } else { //le joueur1 a cliqué sur une case du joueur1 List <int> laList = MaPartie.getCarte().listeDesCasesPossibles(column, row, MaPartie.getCarte().getCase(column, row), MaPartie.joueur1.getPeuple().nomPeuple); updateRectSelection(laList); switch (etatSelection) { case SelectionOperateur.etatSelection.RienEstSelectionne: MaPartie.getSelectionOperateur().selectCase(column, row); /*Case caseSelectionnee = MaPartie.getCarte().getCase(column, row); * if (caseSelectionnee.getUnitsOnCase().Count == 0) * { * MaPartie.getSelectionOperateur().FinDeSelection(); * }*/ // listeDesCasesPossibles(int xdep, int ydep,int numJoueur, Peuple.NomPeuple nompeuple) break; case SelectionOperateur.etatSelection.UniteDeDepartDelectionnee: // dans ce cas il s'agit d'un déplacement d'une des unités du joueur vers une case où il a déjà des unités mais c'est autorisé MaPartie.getSelectionOperateur().selectCase(column, row); MaPartie.getSelectionOperateur().getSelectedCases(&x1, &y1, &x2, &y2); Case casedep = MaPartie.getCarte().getCase(x1, y1); Case casearr = MaPartie.getCarte().getCase(x2, y2); Peuple p = MaPartie.joueur1.getPeuple(); MaPartie.getCarte().moveProcessing(x1, y1, x2, y2, casedep, casearr, p.nomPeuple, MaPartie.joueur1, 1); clearEllipses(); updateGraphiqueUnite(MaPartie.joueur1, 1); updateGraphiqueUnite(MaPartie.joueur2, 2); break; case SelectionOperateur.etatSelection.UniteDarriveeSelectionnee: MessageBox.Show("Vous avez déjà sélectionné 2 cases !"); MaPartie.getSelectionOperateur().FinDeSelection(); break; } /* if (etatSelection != SelectionOperateur.etatSelection.UniteDarriveeSelectionnee) { * MaPartie.getSelectionOperateur().selectCase(column, row); * }else{ * MessageBox.Show("Vous avez déjà sélectionné 2 cases !"); //Ne devrait pas trop arriver * MaPartie.getSelectionOperateur().FinDeSelection(); * }*/ } break; case Case.etatCase.joueur2: if (MaPartie.getJoueur1ALaMain()) { //le joueur1 a cliqué sur une case du joueur2 if (etatSelection != SelectionOperateur.etatSelection.UniteDeDepartDelectionnee) { MessageBox.Show("Attention vous avez sélectionné une case appartenant au joueur adverse !"); MaPartie.getSelectionOperateur().FinDeSelection(); } else { MaPartie.getSelectionOperateur().selectCase(column, row); MaPartie.getSelectionOperateur().getSelectedCases(&x1, &y1, &x2, &y2); Case casedep = MaPartie.getCarte().getCase(x1, y1); Case casearr = MaPartie.getCarte().getCase(x2, y2); Peuple p = MaPartie.joueur1.getPeuple(); Boolean doitSeDeplacer = MaPartie.getCarte().fightProcessing(x1, y1, x2, y2, casedep, casearr, p.nomPeuple, MaPartie.joueur1, MaPartie.joueur2); if (doitSeDeplacer) { MessageBox.Show("Vous avez déclenché un combat !"); } if (MaPartie.joueur2.getUnite().Count == 0 || MaPartie.joueur1.getUnite().Count == 0) { MessageBox.Show("La Partie est finie !"); MessageBox.Show(MaPartie.evaluerFinDePartie()); } if (doitSeDeplacer) { MaPartie.getCarte().moveProcessing(x1, y1, x2, y2, casedep, casearr, p.nomPeuple, MaPartie.joueur1, 1); } clearEllipses(); updateGraphiqueUnite(MaPartie.joueur1, 1); updateGraphiqueUnite(MaPartie.joueur2, 2); } } else { //le joueur2 a cliqué sur une case du joueur2 clearEllipses(); updateGraphiqueUnite(MaPartie.joueur1, 1); updateGraphiqueUnite(MaPartie.joueur2, 2); List <int> laList2 = MaPartie.getCarte().listeDesCasesPossibles(column, row, MaPartie.getCarte().getCase(column, row), MaPartie.joueur2.getPeuple().nomPeuple); updateRectSelection(laList2); switch (etatSelection) { case SelectionOperateur.etatSelection.RienEstSelectionne: MaPartie.getSelectionOperateur().selectCase(column, row); /*Case caseSelectionnee = MaPartie.getCarte().getCase(column, row); * if (caseSelectionnee.getUnitsOnCase().Count == 0) * { * MaPartie.getSelectionOperateur().FinDeSelection(); * }*/ break; case SelectionOperateur.etatSelection.UniteDeDepartDelectionnee: // dans ce cas il s'agit d'un déplacement d'une des unités du joueur vers une case où il a déjà des unités mais c'est autorisé MaPartie.getSelectionOperateur().selectCase(column, row); MaPartie.getSelectionOperateur().getSelectedCases(&x1, &y1, &x2, &y2); Case casedep = MaPartie.getCarte().getCase(x1, y1); Case casearr = MaPartie.getCarte().getCase(x2, y2); Peuple p = MaPartie.joueur2.getPeuple(); MaPartie.getCarte().moveProcessing(x1, y1, x2, y2, casedep, casearr, p.nomPeuple, MaPartie.joueur2, 2); clearEllipses(); updateGraphiqueUnite(MaPartie.joueur1, 1); updateGraphiqueUnite(MaPartie.joueur2, 2); break; case SelectionOperateur.etatSelection.UniteDarriveeSelectionnee: MessageBox.Show("Vous avez déjà sélectionné 2 cases !"); MaPartie.getSelectionOperateur().FinDeSelection(); break; } /*if (etatSelection != SelectionOperateur.etatSelection.UniteDarriveeSelectionnee) * { * MaPartie.getSelectionOperateur().selectCase(column, row); * } * else * { * MessageBox.Show("Vous avez déjà sélectionné 2 cases !"); * MaPartie.getSelectionOperateur().FinDeSelection(); * }*/ } break; } // V2 : gestion avec Binding // Mise à jour du rectangle selectionné => le label sera mis à jour automatiquement par Binding Grid.SetColumn(selectionRectangle, column); Grid.SetRow(selectionRectangle, row); selectionRectangle.Visibility = System.Windows.Visibility.Visible; // V1 : gestion avec evts classiques //if (selectedVisual != null) // selectedVisual.StrokeThickness = 1; //selectedVisual = rectangle; //selectedVisual.Tag = tile; // Tag : ref par defaut sur la tuile logique //rectangle.StrokeThickness = 3; //infoLabel.Content = String.Format("[{0:00} - {1:00}] {2} Fer : {3}", column, row, tile, tile.Iron); Boolean isSecondSelection = MaPartie.getSelectionOperateur().getSelectedCases(&x1, &y1, &x2, &y2); if (isSecondSelection) { //MessageBox.Show("Bravo vous avez bien sélectionner 2 deux cases: " + x1.ToString() + " " + y1.ToString() + " " + x2.ToString() + " " + y2.ToString()); MaPartie.getSelectionOperateur().FinDeSelection(); } }
public void Test_Peuple_2() { IPeuple p = new Peuple(TypePeuple.NAINS, 4, 0, new Coordonnee(0, 0)); Unite uKilled = p.Unites[2]; Assert.IsTrue(p.NombreUnites == 4); Assert.IsTrue(p.Unites.Count == 4); p.TuerUnite(uKilled); Assert.IsTrue(p.NombreUnites == 3); Assert.IsTrue(p.Unites.Count == 3); }
public void Test_Peuple_1() { IPeuple p = new Peuple(TypePeuple.GAULOIS, 2, 0, new Coordonnee(0, 0)); Assert.IsTrue(p.NombreUnites == 2); Assert.IsTrue(p.Unites[0].Coordonnees.Equals(new Coordonnee(0, 0))); Assert.IsTrue(p.Unites[1].Coordonnees.Equals(new Coordonnee(0, 0))); }