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); }
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); }
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 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); }
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); }
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)); }
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(); } }
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); }
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); }
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); }