//Trouver où cette position est (son indice) dans le tableau de positions du navire. int trouverIndicePosition(Navire nav, Pos p) { int indice = 0; while ((nav._pos[indice]._x != p._x || nav._pos[indice]._y != p._y) && indice < nav._pos.Length) { ++indice; } if (indice >= nav._pos.Length) { //position non trouvée return -1; } return indice; }
//Vérifie si toutes les positions du navire sont touchées bool bateauEstCoule(Navire nav) { bool estCoule = true; for (int p = 0; p < nav._pos.Length && estCoule == true; ++p) { if (nav._pos[p]._estTouche == false) { estCoule = false; } } return estCoule; }
void toucherBateau(Navire nav, Pos p) { int indice = trouverIndicePosition(nav, p); nav._pos[indice]._estTouche = true; }
/// <summary> /// Cette méthode guide l'usager pour qu'il place un bateau et limite ses actions pour que ça convienne au bateau courant /// </summary> /// <param name="navire"></param> private void placerBateaux(Navire navire) { ecrireAuLog("Veuillez placer votre " + navire._nom + " (" + navire._pos.Length + ")"); nomBateauCourant = navire._nom; grandeurBateauCourant = navire._pos.Length; }