static void Main(string[] args) { Console.WriteLine("Bataille navale"); Console.WriteLine("Bonjour joueur 1 "); UnJoueurHumainDerrièreLaConsole joueur1 = new UnJoueurHumainDerrièreLaConsole(); Console.WriteLine("Bonjour joueur 2 "); UnJoueurHumainDerrièreLaConsole joueur2 = new UnJoueurHumainDerrièreLaConsole(); PartieDeBatailleNavale partie = new PartieDeBatailleNavale(joueur1, joueur2); bool nouvellePartie; do { partie.ChoisirLesRôlesDeDépartDesJoueurs(); Console.WriteLine("Le joueur {0} est le premier attaquant", partie.Attaquant.Pseudo); partie.PréparerLaBataille(); Console.WriteLine("La partie commence maintenant"); partie.JouerLaPartie(); Console.WriteLine("Nouvelle partie ? (O/N) :"); ConsoleKeyInfo keyinfo = Console.ReadKey(); if (keyinfo.KeyChar == 'O' || keyinfo.KeyChar == 'o') { nouvellePartie = true; } else { nouvellePartie = false; } }while (nouvellePartie); }
public void Phase1_2_PartieDeBatailleNavale_Constructeur() { // vérification du constructeur public Type t = typeof(PartieDeBatailleNavale); ConstructorInfo constructeurPublique = t.GetConstructor(new Type[] { typeof(IContratDuJoueurDeBatailleNavale), typeof(IContratDuJoueurDeBatailleNavale) }); Assert.IsNotNull(constructeurPublique, "PartieDeBatailleNavale doit avoir un constructeur public attendant en paramètre 2 instance de IContratDuJoueurDeBatailleNavale"); bool ThrowException = false; try { PartieDeBatailleNavale p = new PartieDeBatailleNavale(null, null); p = new PartieDeBatailleNavale(null, new joueurTest("joueur test")); p = new PartieDeBatailleNavale(new joueurTest("joueur test"), null); } catch (ArgumentNullException) { ThrowException = true; } Assert.IsTrue(ThrowException, "La construction de PartieDeBatailleNavale ne doit pas accepter les paramètes null"); }
public void Phase1_5_PartieDeBatailleNavale_JouerLaPartie() { for (int x = 0; x < 100; x++) { try { IContratDuJoueurDeBatailleNavale joueur1 = new joueurTest("joueur 1"); IContratDuJoueurDeBatailleNavale joueur2 = new joueurTest("joueur 2"); PartieDeBatailleNavale partie = new PartieDeBatailleNavale(joueur1, joueur2); partie.ChoisirLesRôlesDeDépartDesJoueurs(); partie.PréparerLaBataille(); partie.JouerLaPartie(); } catch (Exception) { Assert.Fail("Il semble encore y avoir des anomalies dans le déroulement de la partie..."); } } }
Phase1_3_PartieDeBatailleNavale_ChoisirLesRôlesDeDépartDesJoueurs() { IContratDuJoueurDeBatailleNavale joueur1 = new joueurTest("joueur 1"); IContratDuJoueurDeBatailleNavale joueur2 = new joueurTest("joueur 2"); PartieDeBatailleNavale partie = new PartieDeBatailleNavale(joueur1, joueur2); // partie.ChoisirLesRôlesDeDépartDesJoueurs(); // IContratDuJoueurDeBatailleNavale attaquantDeDépart = partie.Attaquant; int joueur1Attaquant = 0; int joueur2Attaquant = 0; for (int x = 0; x < 1000; x++) { partie.ChoisirLesRôlesDeDépartDesJoueurs(); Assert.IsNotNull(partie.Attaquant, "L'attaquant ne peut pas être null"); Assert.IsNotNull(partie.Défenseur, "Le défenseur ne peut pas être null"); if (partie.Attaquant == joueur1) { joueur1Attaquant++; Assert.AreEqual(partie.Défenseur, joueur2, "Incohérence entre joueur ataquant et défenseur"); } else if (partie.Attaquant == joueur2) { joueur2Attaquant++; Assert.AreEqual(partie.Défenseur, joueur1, "Incohérence entre joueur ataquant et défenseur"); } else { Assert.Fail("Incohérence entre joueur ataquant et défenseur"); } } if (Math.Abs(joueur1Attaquant - joueur2Attaquant) > 100) { Assert.Fail("Un joueur semble favorisé au tirage au sort de départ"); } }
public void Phase1_4_PartieDeBatailleNavale_IntervertirLesRôlesDesJoueurs() { IContratDuJoueurDeBatailleNavale joueur1 = new joueurTest("joueur 1"); IContratDuJoueurDeBatailleNavale joueur2 = new joueurTest("joueur 2"); PartieDeBatailleNavale partie = new PartieDeBatailleNavale(joueur1, joueur2); partie.ChoisirLesRôlesDeDépartDesJoueurs(); IContratDuJoueurDeBatailleNavale attaquantActuel = partie.Attaquant; IContratDuJoueurDeBatailleNavale défenseurActuel = partie.Défenseur; for (int x = 0; x < 100; x++) { partie.IntervertirLesRôlesDesJoueurs(); if (attaquantActuel == partie.Attaquant) { Assert.Fail("L'attaquant n'a pas changé après l'appel à IntervertirLesRôlesDesJoueurs()"); } Assert.AreEqual(défenseurActuel, partie.Attaquant, "Incohérence après l'interversion des rôles des joueurs"); attaquantActuel = partie.Attaquant; défenseurActuel = partie.Défenseur; } }