Exemple #1
0
 /**
  * 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;
 }
Exemple #2
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;
        }
Exemple #5
0
 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;
 }
Exemple #6
0
 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;
 }
Exemple #8
0
        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)));
 }