64 lines
2.1 KiB
Java
64 lines
2.1 KiB
Java
import java.io.Serializable;
|
|
|
|
/**
|
|
* Représente une case individuelle de la grille de Démineur.
|
|
* Chaque case mémorise son état (minée, révélée, marqueur,..).
|
|
*/
|
|
public class Case implements Serializable {
|
|
|
|
private boolean estMinee;
|
|
private boolean estMineFatale;
|
|
private boolean estRevelee;
|
|
private int marqueur;
|
|
private int nbMinesautour;
|
|
|
|
/**
|
|
* Constructeur par défaut.
|
|
* Initialise une case vide, cachée et sans marqueur.
|
|
*/
|
|
public Case() {
|
|
this.estMinee = false;
|
|
this.estMineFatale = false;
|
|
this.estRevelee = false;
|
|
this.marqueur = 0;
|
|
this.nbMinesautour = 0;
|
|
}
|
|
|
|
/** @return true si la case contient une mine, false sinon. */
|
|
public boolean getEstMinee() { return estMinee; }
|
|
|
|
/** @param min true pour placer une mine sur cette case. */
|
|
public void setEstMinee(boolean min) { this.estMinee = min; }
|
|
|
|
/** @return true si cette mine a causé la défaite du joueur. */
|
|
public boolean getEstMineFatale() { return estMineFatale; }
|
|
|
|
/** @param b true si cette case est la mine qui a explosé. */
|
|
public void setEstMineFatale(boolean b) { this.estMineFatale = b; }
|
|
|
|
/** @return true si la case a été cliquée ou révélée, false si elle est cachée. */
|
|
public boolean getEstRevelee() { return estRevelee; }
|
|
|
|
/** @param rev true pour révéler la case, false pour la cacher. */
|
|
public void setEstRevelee(boolean rev) { this.estRevelee = rev; }
|
|
|
|
/** @return 0 pour vide, 1 pour étoile (★), 2 pour doute (?). */
|
|
public int getMarqueur() { return marqueur; }
|
|
|
|
/**
|
|
* Fait tourner le marqueur en boucle (Vide -> ★ -> ? -> Vide).
|
|
* N'a aucun effet si la case est déjà révélée.
|
|
*/
|
|
public void boucleMarqueur() {
|
|
if (!estRevelee) {
|
|
marqueur = (marqueur + 1) % 3;
|
|
}
|
|
}
|
|
|
|
/** @return Le nombre de mines présentes dans les 8 cases adjacentes. */
|
|
public int getNbMinesautour() { return nbMinesautour; }
|
|
|
|
/** @param nb Le nombre de mines adjacentes calculé. */
|
|
public void setNbMinesautour(int nb) { this.nbMinesautour = nb; }
|
|
}
|