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; } }