public void TestJoueurModifCarac()
        {
            Dictionary<string, CaracteristiqueJoueur> caracs = new Dictionary<string, CaracteristiqueJoueur> {
                {"Force",new CaracteristiqueJoueur(5)}
                ,{"PV",new CaracteristiqueJoueur(15)}
            };
            Joueur MonJoueur = new Joueur("JoueurTest1", curCaracs: caracs);
            Assert.AreEqual(5, MonJoueur["force"], " COnstructeur Valeur force NOK");
            Assert.AreEqual(15, MonJoueur["PV"], " COnstructeur Valeur force NOK");

            Dictionary<string, decimal> modif = new Dictionary<string, decimal> {
                {"Force",3}
                ,{"PV",8}
            };

            MonJoueur.appliquerModificateur(modif,valeurRelative:false);

            Assert.AreEqual(3, MonJoueur["force"], " modif force NOK");
            Assert.AreEqual(8, MonJoueur["PV"], " modif PV NOK");

            Assert.AreEqual(5, MonJoueur.caracMax["force"], " modif force valeur Max NOK");
            Assert.AreEqual(15, MonJoueur.caracMax["PV"], " modif PV NOK valeur Max NOK");


        }
 public void TestCreationJoueurVide()
 {
     Joueur MonJoueur = new Joueur("Joueur1");
     Assert.AreEqual("Joueur1",MonJoueur.nom, " COnstructeur Nom joueur NOK");
     Assert.AreEqual(0, MonJoueur.decks.Count, " COnstructeur nb desck NOK");
     Assert.AreEqual(0, MonJoueur.caracs.Count, " COnstructeur nb carac NOK");
 }
 public void TestCreationJoueurAvecCarac()
 {
     Dictionary<string, CaracteristiqueJoueur> caracs = new Dictionary<string, CaracteristiqueJoueur> {
         {"Force",new CaracteristiqueJoueur(5)}
         ,{"PV",new CaracteristiqueJoueur(15)}
     };
     Joueur MonJoueur = new Joueur("JoueurTest1",curCaracs: caracs);
     Assert.AreEqual("JoueurTest1", MonJoueur.nom, " Constructeur Nom joueur NOK");
     Assert.AreEqual(0, MonJoueur.decks.Count, " COnstructeur Nom joueur NOK");
     Assert.AreEqual(2, MonJoueur.caracs.Count, " COnstructeur Nom joueur NOK");
     Assert.AreEqual(5, MonJoueur["force"], " COnstructeur Valeur force NOK");
     Assert.AreEqual(15, MonJoueur["PV"], " COnstructeur Valeur force NOK");
 }
        public Joueur obtenirJoueur2()
        {
            Deck DeckJoueur2 = construireUnDeck(new Dictionary<string, int>{
                {"Guêpe",10},
                {"Mante religieuse",5},
                {"Goéland leucophée",5}
            });

            Dictionary<string, CaracteristiqueJoueur> caracs = new Dictionary<string, CaracteristiqueJoueur> {
                {"Force",new CaracteristiqueJoueur(8)}
                ,{"PV",new CaracteristiqueJoueur(22)}
            };
            Joueur MonJoueur = new Joueur("JoueurTest1", curCaracs: caracs, curDecks: new List<Deck> { DeckJoueur2 });
            return MonJoueur;
        }
        public void demarerDuel(Joueur curJoueur1, Joueur curJoueur2)
        {
            _joueur1 =  curJoueur1 ;
            _joueur2 =  curJoueur2 ;

            _joueur1.deckActif.battreLesCartes();
            _joueur2.deckActif.battreLesCartes();

            _joueur1.piocherCartes(cartesDeDepartPourDuo);
            _joueur2.piocherCartes(cartesDeDepartPourDuo + cartesDeDepartBonusJoueur2);

            demarrerLeJeu();
        }
        protected void demarrerTourJoueur(int numJoueur)
        {
            if (numJoueur == 1)
            {
                _joueurActif = _joueur1;
                joueurActif.appliquerModificateur(_plateau.terrainsJoueur1.totalModificateurJoueur);
                joueurActif.appliquerModificateur(_plateau.terrainsJoueur2.totalModificateurAdversaire);
            }
            else
            {
                _joueurActif = _joueur2;
                joueurActif.appliquerModificateur(_plateau.terrainsJoueur2.totalModificateurJoueur);
                joueurActif.appliquerModificateur(_plateau.terrainsJoueur1.totalModificateurAdversaire);
            }
            

            joueurActif.piocherCartes();

            joueurActif.appliquerModificateur(new Dictionary<string, decimal>
            {
                {"actions",this.nbAction }
            },surValeurMax:true);
            

        }
        public void TestJoueurCreationCarac()
        {
            Dictionary<string, CaracteristiqueJoueur> caracs = new Dictionary<string, CaracteristiqueJoueur> {
                {"Force",new CaracteristiqueJoueur(5)}
                ,{"PV",new CaracteristiqueJoueur(15)}
            };
            Joueur MonJoueur = new Joueur("JoueurTest1", curCaracs: caracs);

            Dictionary<string, decimal> modif = new Dictionary<string, decimal> {
                {"Action",8}
            };
            MonJoueur.appliquerModificateur(modif);
            Assert.AreEqual(8, MonJoueur["Action"], " Création action NOK");
        }
 /// <summary>
 ///
 /// </summary>
 /// <param name="curJoueur1"></param>
 /// <param name="curJoueur2"></param>
 public Plateau(Joueur curJoueur1, Joueur curJoueur2)
 {
     _terrainsJoueur1 = new Terrain(curJoueur1.tailleTerrain);
     _terrainsJoueur2 = new Terrain(curJoueur2.tailleTerrain);
 }
 /// <summary>
 /// 
 /// </summary>
 /// <param name="curJoueur1"></param>
 /// <param name="curJoueur2"></param>
 public Plateau(Joueur curJoueur1,Joueur curJoueur2)
 {
     _terrainsJoueur1 = new Terrain(curJoueur1.tailleTerrain);
     _terrainsJoueur2 = new Terrain(curJoueur2.tailleTerrain);
 }