java.lang.Object
logique.GrilleNavale
- Direct Known Subclasses:
GrilleNavaleGraphique
Gestion logique d'une grille de Bataille Navale. La grille contient une
liste de navires placés et un ensemble de tirs reçus. Cette classe est
indépendante de l'interface graphique et ne manipule que les données de
domaine. La sous-classe `GrilleNavaleGraphique` ajoute le comportement
d'affichage.
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionbooleanIndique si la coordonnée a déjà été attaquée.booleanAjoute un navire à la grille s'il ne dépasse pas les limites, ne chevauche pas un navire existant et ne touche pas (pas de navires adjacents).booleanIndique si la coordonnée est à l'eau (aucun navire ne l'occupe).booleanIndique si un navire contenant la coordonnée donnée est coulé.booleanVérifie si une coordonnée est dans les limites de la grille.booleanIndique si un navire est touché à la coordonnée donnée.Renvoie la liste des navires présents sur la grille.intbooleanperdu()Indique si tous les navires de la grille ont été coulés.voidplacementAuto(int[] taillesNavires) Place automatiquement une liste de navires aux tailles données.booleanTraite un tir sur la grille.
-
Field Details
-
taille
protected final int taille -
tirsRecus
-
-
Constructor Details
-
GrilleNavale
public GrilleNavale(int taille) Crée une grille carrée de la taille indiquée.- Parameters:
taille- dimension de la grille (nombre de lignes et de colonnes)
-
-
Method Details
-
getTaille
public int getTaille() -
estDansGrille
Vérifie si une coordonnée est dans les limites de la grille. -
placementAuto
public void placementAuto(int[] taillesNavires) Place automatiquement une liste de navires aux tailles données. Chaque navire est positionné aléatoirement tant que les contraintes de placement sont respectées. Cette méthode garantit que tous les navires sont placés avant de retourner.- Parameters:
taillesNavires- tableau des longueurs des navires à placer
-
recoitTir
Traite un tir sur la grille. Si la coordonnée a déjà été attaquée, retourne faux. Sinon, enregistre le tir et retourne vrai si un navire a été touché. -
estALEau
Indique si la coordonnée est à l'eau (aucun navire ne l'occupe). -
estTouche
Indique si un navire est touché à la coordonnée donnée. -
estCoule
Indique si un navire contenant la coordonnée donnée est coulé. -
perdu
public boolean perdu()Indique si tous les navires de la grille ont été coulés. -
aDejaTire
Indique si la coordonnée a déjà été attaquée. Utile pour les joueurs automatiques qui doivent éviter de répéter un tir.
-