public RésultatDeTir VérifierLeRésultatDuTir(CoordonnéesDeBatailleNavale caseCible) { int nbSection = 0; RésultatDeTir res = RésultatDeTir.Raté; for (int i = 0; i < Sections.Length; i++) { if (caseCible == Sections[i].Position) { Sections[i].Etat = EtatDeSectionDeNavire.Touché; res = RésultatDeTir.Touché; } } for (int j = 0; j < Sections.Length; j++) { if (Sections[j].Etat == EtatDeSectionDeNavire.Touché) { nbSection++; } } if (nbSection == Sections.Length) { this.Etat = EtatDeNavire.Coulé; res = RésultatDeTir.TouchéCoulé; } return(res); }
//public RésultatDeTir VérifierLeRésultatDuTir(CoordonnéesDeBatailleNavale caseCible) //{ // int i = 0; // int couléCount = 0; // RésultatDeTir res = RésultatDeTir.Raté; // while (Navires[i].VérifierLeRésultatDuTir(caseCible) == RésultatDeTir.Raté) // { // if (Navires[i].VérifierLeRésultatDuTir(caseCible) == RésultatDeTir.TouchéCoulé) // { // res = RésultatDeTir.Touché; for (int j = 0; j < Navires.Length; j++) // { // if (Navires[i].Etat == EtatDeNavire.Coulé) // couléCount++; // } // } // i++; // } // if (couléCount >= Navires.Length) // { // res = RésultatDeTir.TouchéCoulé; // } // return res; //} public RésultatDeTir VérifierLeRésultatDuTir(CoordonnéesDeBatailleNavale caseCible) { RésultatDeTir res = RésultatDeTir.Raté; bool couléFinal = true; foreach (UnNavire navire in Navires) { RésultatDeTir resTir = navire.VérifierLeRésultatDuTir(caseCible); if (navire.Etat != EtatDeNavire.Coulé) { couléFinal = false; } if (resTir == RésultatDeTir.Touché) { res = RésultatDeTir.Touché; break; } if (resTir == RésultatDeTir.TouchéCoulé) { res = RésultatDeTir.TouchéCoulé; } } if (couléFinal) { res = RésultatDeTir.TouchéCouléFinal; } return(res); }
public void Phase_2_8_VérifierLeRésultatDuTir() { UneFlotteDeNavires flotte = new UneFlotteDeNavires(); MettreTousLesNaviresAuPort(flotte); byte ligne = 1; foreach (UnNavire navire in flotte.Navires) { int sectionNum = 0; for (; sectionNum < navire.Sections.Length - 1; sectionNum++) { RésultatDeTir resultatTirTouché = navire.VérifierLeRésultatDuTir(new CoordonnéesDeBatailleNavale((char)('A' + sectionNum), ligne)); Assert.AreEqual(resultatTirTouché, RésultatDeTir.Touché, "Le navire situé ici devrait être touché"); } RésultatDeTir resultatTirTouchéCoulé = navire.VérifierLeRésultatDuTir(new CoordonnéesDeBatailleNavale((char)('A' + sectionNum), ligne)); Assert.AreEqual(resultatTirTouchéCoulé, RésultatDeTir.TouchéCoulé, "Le navire situé ici devrait être touché et coulé!"); ligne++; } flotte.RéparerTousLesNavires(); ligne = 1; foreach (UnNavire navire in flotte.Navires) { int sectionNum = 0; for (; sectionNum < navire.Sections.Length - 1; sectionNum++) { RésultatDeTir resultatTirTouché = flotte.VérifierLeRésultatDuTir(new CoordonnéesDeBatailleNavale((char)('A' + sectionNum), ligne)); Assert.AreEqual(resultatTirTouché, RésultatDeTir.Touché, "Le navire situé ici devrait être touché"); } if (ligne < 5) // dernière section , mais pas dernier navire { RésultatDeTir resultatTirTouchéCoulé = flotte.VérifierLeRésultatDuTir(new CoordonnéesDeBatailleNavale((char)('A' + sectionNum), ligne)); Assert.AreEqual(resultatTirTouchéCoulé, RésultatDeTir.TouchéCoulé, "Le navire situé ici devrait être touché et coulé !"); } else // dernière section , du dernier navire { RésultatDeTir resultatTirTouchéCouléFinal = flotte.VérifierLeRésultatDuTir(new CoordonnéesDeBatailleNavale((char)('A' + sectionNum), ligne)); Assert.AreEqual(resultatTirTouchéCouléFinal, RésultatDeTir.TouchéCouléFinal, "Le navire situé ici devrait être le dernier navire touché et coulé!"); } ligne++; } }
public void JouerLaPartie() { CoordonnéesDeBatailleNavale choixAttaquant = this.Attaquant.Attaquant_ChoisirLesCoordonnéesDeTir(); RésultatDeTir reponseDef = this.Défenseur.Défenseur_FournirLeRésultatDuTir(choixAttaquant); this.Attaquant.Attaquant_GérerLeRésultatDuTir(choixAttaquant, reponseDef); if (reponseDef != RésultatDeTir.TouchéCouléFinal) { this.IntervertirLesRôlesDesJoueurs(); } while (reponseDef != RésultatDeTir.TouchéCouléFinal) { CoordonnéesDeBatailleNavale choixAttaquants = this.Attaquant.Attaquant_ChoisirLesCoordonnéesDeTir(); RésultatDeTir reponseDefs = this.Défenseur.Défenseur_FournirLeRésultatDuTir(choixAttaquants); this.Attaquant.Attaquant_GérerLeRésultatDuTir(choixAttaquants, reponseDefs); if (reponseDefs != RésultatDeTir.TouchéCouléFinal) { this.IntervertirLesRôlesDesJoueurs(); } } Console.WriteLine("Le gagnant est " + this.Attaquant + "."); }
public void Attaquant_GérerLeRésultatDuTir(CoordonnéesDeBatailleNavale coordonnéesDuTir, RésultatDeTir résultatDuTir) { throw new NotImplementedException(); }
public void Attaquant_GérerLeRésultatDuTir(CoordonnéesDeBatailleNavale coordonnéesDuTir, RésultatDeTir résultatDuTir) { }