コード例 #1
0
        /// <summary>
        /// Tirer un missile aux coordonnées <paramref name="coord"/>
        /// </summary>
        /// <param name="grilleBateaux"></param>
        /// <param name="grilleMissile"></param>
        /// <param name="tabToucheBateaux"></param>
        /// <param name="coord"></param>
        /// <param name="tabTaillesBateaux"></param>
        /// <returns>résultat du tir: type du bateau touché, 0 si aucun bateau touché, -1 erreur on a déjà tiré ici</returns>
        public static int Tirer(int[,] grilleBateaux, int[,] grilleMissile
                                , int[] tabToucheBateaux, int[] coord, int[] tabTaillesBateaux)
        {
            if (Grille.EtreVide(grilleMissile, coord))
            {
                //il n'y a pas de bateaux à coord
                if (Grille.EtreVide(grilleBateaux, coord))
                {
                    grilleMissile[coord[0], coord[1]] = 1;
                    return(0);
                }
                else
                {
                    grilleMissile[coord[0], coord[1]] = 2; //Bateau touché non coulé

                    //on décremente le nombre de case occupé par le bateau touché
                    tabToucheBateaux[grilleBateaux[coord[0], coord[1]] - 1] -= 1;

                    if (tabToucheBateaux[grilleBateaux[coord[0], coord[1]] - 1] == 0)
                    {
                        TransformerToucheEnCoule(grilleBateaux, grilleMissile, coord, tabTaillesBateaux);
                    }

                    return(grilleBateaux[coord[0], coord[1]]);
                }
            }
            else
            {
                return(-1);
            }
        }