// créetion d'une methode pour ajouter des bateaux public void ajoutBateau(bateau bateau) { // on ajoute un bateau this.bateau = bateau; // on prévient que la case est utilisée en mettant l'étt à "bateau " this.etat = etat.bateau; }
// on ajoute un bateau selon une cellule de départ et une direction public bool ajoutBateau(bateau bateau, cellule cellule, direction direction) { int taille = bateau.taille; int x = cellule.x; int y = cellule.y; // on vérifie le placement d'un bateau en position verticale vers le bas switch (direction) { case direction.bas: //on vérifie si il y a asser de place pour le placement du bateau // la taille du bateau + la valeur de la cellule de départ ne peut dépasser la longueur totale de la colonne if (y + taille <= 10) { // on initialise une variable bool à true bool ok = true; // on fait une boucle pour la taille du bateau for (int i = 0; i < taille; i++) { if (tab[y+i, x].etat != etat.eau) { ok = false; } } if (ok) { // on fait une boucle pour la taille du bateau for (int i = 0; i < taille; i++) { // on place le bateau tab[y+i, x].ajoutBateau(bateau); } return true; } else { return false; } } else { return false; } case direction.haut: //la taille de vérification doit être inversée du fait qu'on remonte vers la cellule 0 if (y - taille >= 0) { bool ok = true; for (int i = 0; i < taille; i++) { if (tab[y-i,x].etat != etat.eau) { ok = false; } } if (ok) { for (int i = 0; i < taille; i++) { tab[y-i, x].ajoutBateau(bateau); } return true; } else { return false; } } else { return false; } case direction.gauche: if (x - taille >= 0) { bool ok = true; for (int i = 0; i < taille; i++) { if (tab[y, x-i].etat != etat.eau) { ok = false; } } if (ok) { for (int i = 0; i < taille; i++) { tab[y, x-i].ajoutBateau(bateau); } return true; } else { return false; } } else { return false; } case direction.droite: if (x + taille <= 10) { bool ok = true; for (int i = 0; i < taille; i++) { if (tab[y, x+i].etat != etat.eau) { ok = false; } } if (ok) { for (int i = 0; i < taille; i++) { tab[y, x+i].ajoutBateau(bateau); } return true; } else { return false; } } else { return false; } default: return false; } }
// on ajoute un bateau selon une cellule de départ et une direction public bool ajoutBateau(bateau bateau, cellule cellule, direction direction) { int taille = bateau.taille; int x = cellule.x; int y = cellule.y; // on vérifie le placement d'un bateau en position verticale vers le bas switch (direction) { case direction.bas: //on vérifie si il y a asser de place pour le placement du bateau // la taille du bateau + la valeur de la cellule de départ ne peut dépasser la longueur totale de la colonne if (y + taille <= 10) { // on initialise une variable bool à true bool ok = true; // on fait une boucle pour la taille du bateau for (int i = 0; i < taille; i++) { if (tab[y + i, x].etat != etat.eau) { ok = false; } } if (ok) { // on fait une boucle pour la taille du bateau for (int i = 0; i < taille; i++) { // on place le bateau tab[y + i, x].ajoutBateau(bateau); } return(true); } else { return(false); } } else { return(false); } case direction.haut: //la taille de vérification doit être inversée du fait qu'on remonte vers la cellule 0 if (y - taille >= 0) { bool ok = true; for (int i = 0; i < taille; i++) { if (tab[y - i, x].etat != etat.eau) { ok = false; } } if (ok) { for (int i = 0; i < taille; i++) { tab[y - i, x].ajoutBateau(bateau); } return(true); } else { return(false); } } else { return(false); } case direction.gauche: if (x - taille >= 0) { bool ok = true; for (int i = 0; i < taille; i++) { if (tab[y, x - i].etat != etat.eau) { ok = false; } } if (ok) { for (int i = 0; i < taille; i++) { tab[y, x - i].ajoutBateau(bateau); } return(true); } else { return(false); } } else { return(false); } case direction.droite: if (x + taille <= 10) { bool ok = true; for (int i = 0; i < taille; i++) { if (tab[y, x + i].etat != etat.eau) { ok = false; } } if (ok) { for (int i = 0; i < taille; i++) { tab[y, x + i].ajoutBateau(bateau); } return(true); } else { return(false); } } else { return(false); } default: return(false); } }