Пример #1
0
        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);
        }
Пример #3
0
        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 + ".");
        }
Пример #5
0
 public void Attaquant_GérerLeRésultatDuTir(CoordonnéesDeBatailleNavale coordonnéesDuTir, RésultatDeTir résultatDuTir)
 {
     throw new NotImplementedException();
 }
Пример #6
0
 public void Attaquant_GérerLeRésultatDuTir(CoordonnéesDeBatailleNavale
                                            coordonnéesDuTir, RésultatDeTir résultatDuTir)
 {
 }