Exemplo n.º 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);
        }
Exemplo n.º 3
0
 public UneSectionDeNavire()
 {
     Etat     = EtatDeSectionDeNavire.Intact;
     Position = new CoordonnéesDeBatailleNavale('A', 1);
     if (Position == null)
     {
         throw new ArgumentOutOfRangeException("la position ne peux pas être null");
     }
 }
Exemplo n.º 4
0
        public CoordonnéesDeBatailleNavale Attaquant_ChoisirLesCoordonnéesDeTir()
        {
            Console.WriteLine(Pseudo + "Veuillez choisir une coordonnée valide. Entre 'A' et 'J'.");
            string saisieLettre = Console.ReadLine();
            char   letter       = Char.Parse(saisieLettre);

            Console.WriteLine(Pseudo + "Veuillez choisir une coordonnée valide. Entre  '1' à '10'");
            string saisieChiffre = Console.ReadLine();
            byte   number        = Byte.Parse(saisieChiffre);

            CoordonnéesDeBatailleNavale data = new CoordonnéesDeBatailleNavale(letter, number);

            return(data);
        }
Exemplo n.º 5
0
        public void Positionner(CoordonnéesDeBatailleNavale coordonnées, OrientationNavire orientation)
        {
            char colonne = coordonnées.Colonne;
            byte ligne   = coordonnées.Ligne;

            for (int i = 0; i < this.Sections.Length; i++)
            {
                CoordonnéesDeBatailleNavale coord;

                if (orientation == OrientationNavire.Horizontal)
                {
                    coord = new CoordonnéesDeBatailleNavale(colonne, coordonnées.Ligne);
                }
                else
                {
                    coord = new CoordonnéesDeBatailleNavale(coordonnées.Colonne, ligne);
                }
                this.Sections[i].Position = coord;
                colonne++;
                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 + ".");
        }
Exemplo n.º 7
0
 public void Attaquant_GérerLeRésultatDuTir(CoordonnéesDeBatailleNavale coordonnéesDuTir, RésultatDeTir résultatDuTir)
 {
     throw new NotImplementedException();
 }
Exemplo n.º 8
0
 public abstract CoordonnéesDeBatailleNavale.RésultatDeTir Défenseur_FournirLeRésultatDuTir(CoordonnéesDeBatailleNavale cbn);
Exemplo n.º 9
0
 public abstract void Attaquant_GérerLeRésultatDuTir(CoordonnéesDeBatailleNavale cbn, CoordonnéesDeBatailleNavale.RésultatDeTir rt);
Exemplo n.º 10
0
        public CoordonnéesDeBatailleNavale.RésultatDeTir Défenseur_FournirLeRésultatDuTir(CoordonnéesDeBatailleNavale cbn)
        {
            Console.WriteLine(Pseudo + "Veuillez saisir le résultat de tir de (Inconnu, Raté, Touché, TouchéCoulé, TouchéCouléFinal)" +
                              " : " + cbn.Colonne + " " + cbn.Ligne);

            string saisieChoix = Console.ReadLine();

            if (saisieChoix == "Raté")
            {
                return(CoordonnéesDeBatailleNavale.RésultatDeTir.Raté);
            }
            else if (saisieChoix == "Touché")
            {
                return(CoordonnéesDeBatailleNavale.RésultatDeTir.Touché);
            }
            else if (saisieChoix == "TouchéCoulé")
            {
                return(CoordonnéesDeBatailleNavale.RésultatDeTir.TouchéCoulé);
            }
            else if (saisieChoix == "TouchéCouléFinal")
            {
                return(CoordonnéesDeBatailleNavale.RésultatDeTir.TouchéCouléFinal);
            }
            else
            {
                return(CoordonnéesDeBatailleNavale.RésultatDeTir.Inconnu);
            }
        }
Exemplo n.º 11
0
 public void Attaquant_GérerLeRésultatDuTir(CoordonnéesDeBatailleNavale cbn, CoordonnéesDeBatailleNavale.RésultatDeTir rt)
 {
     Console.WriteLine(rt);
 }