Example #1
0
        public void ParfaiteContreParfaite()
        {
            Morpion morpion = new Morpion();

            morpion.Initialisation("IA_Evoluee", "Joueur");
            Position pos;

            IA_Parfaite  perf = new IA_Parfaite(morpion.PlateauRestreint);
            IA_Aleatoire alea = new IA_Aleatoire(morpion.PlateauRestreint);
            IA_Evoluee   evol = new IA_Evoluee(morpion.PlateauRestreint);

            for (int i = 0; i < 9; i++)
            {
                if (i % 2 == 0)
                {
                    pos = perf.Jouer();
                }
                else
                {
                    pos = perf.Jouer();
                }
                morpion.Tour(pos.X, pos.Y);
                morpion.PlateauJeu.Afficher();
            }

            // Entre deux IA parfaites, il doit toujours y avoir match nul.
            Assert.AreEqual(morpion.Vainqueur, null);
        }
Example #2
0
        public void Constructeur()
        {
            Morpion morpion = new Morpion();
            IA      ia      = new IA("IA", morpion);

            Assert.IsNotNull(ia);
        }
Example #3
0
        public void ParfaiteContreEvoluee()
        {
            Morpion morpion = new Morpion();

            morpion.Initialisation("IA_Evoluee", "Joueur");
            Position pos;

            IA_Parfaite  perf = new IA_Parfaite(morpion.PlateauRestreint);
            IA_Aleatoire alea = new IA_Aleatoire(morpion.PlateauRestreint);
            IA_Evoluee   evol = new IA_Evoluee(morpion.PlateauRestreint);

            for (int i = 0; i < 9; i++)
            {
                if (i % 2 == 0)
                {
                    pos = perf.Jouer();
                }
                else
                {
                    pos = evol.Jouer();
                }
                morpion.Tour(pos.X, pos.Y);
                morpion.PlateauJeu.Afficher();
            }
        }
        public void TestIA()
        {
            Morpion morpion = new Morpion();

            morpion.Initialisation("IA_Evoluee", "Joueur");
            Position pos;

            IA_Evoluee ia = new IA_Evoluee(morpion.PlateauRestreint);

            // Tour 1 -- test règle 1; on vérifie si l'IA joue au centre.
            pos = ia.Jouer();
            morpion.Tour(pos.X, pos.Y);
            morpion.PlateauJeu.Afficher();
            Assert.AreEqual(morpion.Joueur1, morpion.PlateauJeu.GetCase(1, 1).Joueur);

            Console.Write("===========\n\n");

            // On recommence une partie. Tour 2 -- test règle 2; on vérifie si l'IA joue dans une diagonale si le premier joueur joue au centre.
            morpion.Initialisation("Joueur", "IA_Evoluee");
            morpion.Tour(1, 1);

            pos = ia.Jouer();
            morpion.Tour(pos.X, pos.Y);
            morpion.PlateauJeu.Afficher();
            Assert.AreEqual(morpion.Joueur2, morpion.PlateauJeu.GetCase(0, 0).Joueur);

            // Tour 3 -- test règle 3: si l'IA détecte une case pouvant faire gagner l'adversaire, elle joue dans cette case.
            morpion.Tour(1, 0);

            pos = ia.Jouer();
            morpion.Tour(pos.X, pos.Y);
            morpion.PlateauJeu.Afficher();
            Assert.AreEqual(morpion.Joueur2, morpion.PlateauJeu.GetCase(1, 2).Joueur);
        }
Example #5
0
        public void getNomJoueurQuiClique()
        {
            Morpion morpion = new Morpion();

            morpion.saisieNomsJoueurs("a", "b");
            morpion.cocherCase(0, 0);
            Assert.AreEqual("a", morpion.getNomJoueurQuiClique());
        }
Example #6
0
        public void isJoueurCourantNotNull()
        {
            Morpion morpion = new Morpion();

            Assert.AreEqual(false, morpion.isJoueurCourantNotNull());
            morpion.saisieNomsJoueurs("a", "b");
            Assert.AreEqual(true, morpion.isJoueurCourantNotNull());
        }
Example #7
0
        public void SaisieNomJoueurs()
        {
            Morpion morpion = new Morpion();

            morpion.saisieNomsJoueurs("a", "b");
            Assert.AreEqual(morpion.Joueur1.Nom, "a");
            Assert.AreEqual(morpion.Joueur2.Nom, "b");
        }
        public void TestIA()
        {
            Morpion morpion = new Morpion();

            morpion.Initialisation("Joueur1", "IABasique");
            Position pos;

            IA_Basique ia = new IA_Basique(morpion.PlateauRestreint);

            // Tour 1

            morpion.Tour(0, 0);

            Assert.AreEqual(null, morpion.PlateauJeu.GetCase(1, 0).Joueur);

            pos = ia.Jouer();
            morpion.Tour(pos.X, pos.Y);

            Assert.AreEqual(morpion.Joueur2, morpion.PlateauJeu.GetCase(1, 0).Joueur);

            // Tour 2

            morpion.Tour(2, 1);

            pos = ia.Jouer();
            morpion.Tour(pos.X, pos.Y);

            Assert.AreEqual(morpion.Joueur2, morpion.PlateauJeu.GetCase(2, 0).Joueur);

            // Tour 3

            morpion.Tour(1, 2);

            pos = ia.Jouer();
            morpion.Tour(pos.X, pos.Y);

            Assert.AreEqual(morpion.Joueur2, morpion.PlateauJeu.GetCase(0, 1).Joueur);

            // Tour 4

            morpion.Tour(1, 1);

            pos = ia.Jouer();
            morpion.Tour(pos.X, pos.Y);

            Assert.AreEqual(morpion.Joueur2, morpion.PlateauJeu.GetCase(2, 0).Joueur);

            // Tour 5

            morpion.Tour(2, 2);

            Assert.AreEqual(false, morpion.EnJeu);

            pos = ia.Jouer();
            morpion.Tour(pos.X, pos.Y);

            Assert.AreEqual(new Position(-1, -1), pos);
        }
Example #9
0
        public void cocherCase()
        {
            Morpion morpion = new Morpion();

            morpion.saisieNomsJoueurs("a", "b");
            Assert.AreEqual(1, morpion.cocherCase(0, 0));
            Assert.AreEqual(0, morpion.cocherCase(0, 0));
            Assert.AreEqual(2, morpion.cocherCase(1, 0));
        }
Example #10
0
        public void decide()
        {
            Morpion   morpion = new Morpion();
            IA        ia      = new IA("IA", morpion);
            StructCoo coo;

            coo = ia.decide();
            Assert.AreNotEqual(null, coo.x);
            Assert.AreNotEqual(null, coo.y);
        }
Example #11
0
        public void gagner()
        {
            Morpion morpion = new Morpion();

            morpion.cocherCase(0, 0);
            morpion.cocherCase(1, 0);
            morpion.cocherCase(0, 1);
            morpion.cocherCase(2, 0);
            morpion.cocherCase(0, 2);
            Assert.AreEqual(1, morpion.gagner());
        }
Example #12
0
        public void TestGetCase()
        {
            Morpion m = new Morpion();

            m.Initialisation("test1", "test2");

            // On vérifie si la case que l'on a obtenue par p.GetCase() a bien été marquée.
            Joueur jCourant = m.JoueurCourant;

            m.Tour(1, 2);
            Assert.AreEqual(jCourant, m.PlateauJeu.GetCase(1, 2).Joueur);

            // On vérifie si getCase() renvoie bien null si on lui demande une case de plateau qui n'existe pas.
            Assert.AreEqual(null, m.PlateauJeu.GetCase(3, 5));
        }
Example #13
0
        public void recommancerPartie()
        {
            Morpion morpion = new Morpion();

            morpion.saisieNomsJoueurs("a", "b");
            morpion.recommancerPartie();
            Assert.IsTrue(morpion.isJoueurCourantNotNull());
            for (int i = 0; i < 3; i++)
            {
                for (int j = 0; j < 3; j++)
                {
                    Assert.AreNotEqual(0, morpion.cocherCase(i, j));
                }
            }
        }
        public MainWindow()
        {
            InitializeComponent();
            morpion  = new Morpion();
            partieIA = false;


            plateauIHM = new PlateauIHM(morpion.PlateauJeu);

            this.plateauIHM.AjouterCaseIHM(new CaseIHM(morpion.PlateauJeu.GetCase(0, 0), A1));
            this.plateauIHM.AjouterCaseIHM(new CaseIHM(morpion.PlateauJeu.GetCase(1, 0), B1));
            this.plateauIHM.AjouterCaseIHM(new CaseIHM(morpion.PlateauJeu.GetCase(2, 0), C1));

            this.plateauIHM.AjouterCaseIHM(new CaseIHM(morpion.PlateauJeu.GetCase(0, 1), A2));
            this.plateauIHM.AjouterCaseIHM(new CaseIHM(morpion.PlateauJeu.GetCase(1, 1), B2));
            this.plateauIHM.AjouterCaseIHM(new CaseIHM(morpion.PlateauJeu.GetCase(2, 1), C2));

            this.plateauIHM.AjouterCaseIHM(new CaseIHM(morpion.PlateauJeu.GetCase(0, 2), A3));
            this.plateauIHM.AjouterCaseIHM(new CaseIHM(morpion.PlateauJeu.GetCase(1, 2), B3));
            this.plateauIHM.AjouterCaseIHM(new CaseIHM(morpion.PlateauJeu.GetCase(2, 2), C3));
        }
Example #15
0
        public void TestIA()
        {
            // Test unitaire d'une méthode aléatoire : pose soucis, car il ne pourra jamais être valable à 100%.
            // Nous pouvons seulement nous approcher de ce nombre.

            Morpion morpion = new Morpion();

            morpion.Initialisation("IA_1", "IA_2");

            IA_Aleatoire ia = new IA_Aleatoire(morpion.PlateauRestreint);
            Position     pos;

            morpion.PlateauJeu.Afficher();


            for (int i = 0; i < 9; i++)
            {
                pos = ia.Jouer();
                morpion.Tour(pos.X, pos.Y);
                morpion.PlateauJeu.Afficher();
            }
        }
Example #16
0
        public void TestIABasique()
        {
            Morpion morpion = new Morpion();

            morpion.Initialisation("IA_Evoluee", "Joueur");
            Position pos;

            IA_Parfaite ia = new IA_Parfaite(morpion.PlateauRestreint);

            morpion.Tour(1, 1);
            morpion.Tour(0, 1);
            morpion.Tour(0, 0);
            morpion.Tour(2, 2);
            morpion.Tour(2, 0);
            morpion.Tour(0, 2);

            pos = ia.Jouer();
            morpion.Tour(pos.X, pos.Y);
            morpion.PlateauJeu.Afficher();

            Assert.AreEqual(morpion.Joueur1, morpion.PlateauJeu.GetCase(1, 0).Joueur);
        }
Example #17
0
        public void TestClone()
        {
            Morpion morpion = new Morpion();

            morpion.Initialisation("Joueur1", "Joueur2");
            morpion.Tour(1, 2);

            Plateau plateau2 = morpion.PlateauJeu.Clone(new Morpion());

            // Test de chaque case, impropre
            Assert.AreEqual(null, plateau2.GetCase(0, 0).Joueur);
            Assert.AreEqual(null, plateau2.GetCase(0, 1).Joueur);
            Assert.AreEqual(null, plateau2.GetCase(0, 2).Joueur);
            Assert.AreEqual(null, plateau2.GetCase(1, 0).Joueur);
            Assert.AreEqual(null, plateau2.GetCase(1, 1).Joueur);
            Assert.AreEqual(morpion.Joueur1, plateau2.GetCase(1, 2).Joueur);
            Assert.AreEqual(null, plateau2.GetCase(2, 0).Joueur);
            Assert.AreEqual(null, plateau2.GetCase(2, 1).Joueur);
            Assert.AreEqual(null, plateau2.GetCase(2, 2).Joueur);


            Assert.AreEqual(morpion.PlateauJeu, plateau2);
        }
Example #18
0
        public void TestReinitialiser()
        {
            Morpion m = new Morpion();

            m.Initialisation("test1", "test2");

            m.Tour(0, 1);
            m.Tour(0, 2);

            m.PlateauJeu.Reinitialiser();

            // On vérifie si le plateau est vide.
            Boolean estVide = true;

            for (int i = 0; i < 3; i++)
            {
                for (int j = 0; i < 3; i++)
                {
                    estVide = estVide && (m.PlateauJeu.GetCase(i, j).Joueur == null);
                }
            }
            Assert.AreEqual(true, estVide);
        }
Example #19
0
 public void TestConstructeur()
 {
     Morpion morpion = new Morpion();
 }
Example #20
0
        public void TestPartie()
        {
            Morpion morpion = new Morpion();

            morpion.Initialisation("Joueur1", "Joueur2");

            // Vérification si le joueur courant est correctement défini.
            Assert.AreEqual(morpion.Joueur1, morpion.JoueurCourant);

            morpion.Tour(0, 0);
            morpion.Tour(0, 1);

            // Vérification si les cartes ont été marquées correctement.
            Assert.AreEqual(morpion.Joueur1, morpion.PlateauJeu.GetCase(0, 0).Joueur);
            Assert.AreEqual(morpion.Joueur2, morpion.PlateauJeu.GetCase(0, 1).Joueur);

            // Vérification si le joueur courant est correctement défini.
            Assert.AreEqual(morpion.Joueur1, morpion.JoueurCourant);

            morpion.Tour(1, 0);
            morpion.Tour(1, 1);

            // Vérification s'il n'y a bien pas de vainqueur encore assigné.
            Assert.AreEqual(null, morpion.Vainqueur);

            // Marquage de la dernière case manquante permettant au joueur 1 de gagner la partie.
            morpion.Tour(2, 0);

            // Vérification si le joueur 1 a bien été assigné comme vainqueur.
            Assert.AreEqual(morpion.Joueur1, morpion.Vainqueur);

            morpion.Initialisation("NouveauJoueur1", "NouveauJoueur2");

            // Vérification si toutes les cases sont vides.
            Boolean casesVides = true;

            for (int i = 0; i < 3; i++)
            {
                for (int j = 0; i < 3; i++)
                {
                    casesVides = casesVides && (morpion.PlateauJeu.GetCase(i, j).Joueur == null);
                }
            }
            Assert.AreEqual(true, casesVides);

            // Vérification si le joueur courant est bien le joueur 1.
            Assert.AreEqual(morpion.Joueur1, morpion.JoueurCourant);

            // Vérification si les joueurs ont bien les noms demandés.
            Assert.AreEqual("NouveauJoueur1", morpion.Joueur1.Nom);
            Assert.AreEqual("NouveauJoueur2", morpion.Joueur2.Nom);

            // Vérification s'il n'y a bien pas de vainqueur encore assigné.
            Assert.AreEqual(null, morpion.Vainqueur);

            morpion.Tour(1, 1);
            morpion.Tour(2, 2);
            morpion.Tour(1, 2);
            morpion.Tour(1, 0);
            morpion.Tour(2, 1);
            morpion.Tour(0, 1);
            morpion.Tour(0, 2);
            morpion.Tour(2, 0);
            morpion.Tour(0, 0);

            // Vérification si la partie est bien notée comme match nul.
            Assert.AreEqual(null, morpion.Vainqueur);
        }
Example #21
0
        public void Constructeur()
        {
            Morpion morpion = new Morpion();

            Assert.IsNotNull(morpion);
        }