Files

64 lines
2.1 KiB
Java
Raw Permalink Normal View History

import java.io.Serializable;
2026-04-11 21:18:10 +02:00
/**
* 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;
2026-04-11 21:18:10 +02:00
/**
* Constructeur par défaut.
* Initialise une case vide, cachée et sans marqueur.
*/
public Case() {
2026-04-11 21:18:10 +02:00
this.estMinee = false;
this.estMineFatale = false;
this.estRevelee = false;
this.marqueur = 0;
this.nbMinesautour = 0;
}
2026-04-11 21:18:10 +02:00
/** @return true si la case contient une mine, false sinon. */
public boolean getEstMinee() { return estMinee; }
2026-04-11 21:18:10 +02:00
/** @param min true pour placer une mine sur cette case. */
public void setEstMinee(boolean min) { this.estMinee = min; }
2026-04-11 21:18:10 +02:00
/** @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; }
2026-04-11 21:18:10 +02:00
/** @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; }
2026-04-11 21:18:10 +02:00
/** @param rev true pour révéler la case, false pour la cacher. */
public void setEstRevelee(boolean rev) { this.estRevelee = rev; }
2026-04-11 21:18:10 +02:00
/** @return 0 pour vide, 1 pour étoile (★), 2 pour doute (?). */
public int getMarqueur() { return marqueur; }
2026-04-11 21:18:10 +02:00
/**
* 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() {
2026-04-11 21:18:10 +02:00
if (!estRevelee) {
marqueur = (marqueur + 1) % 3;
}
}
2026-04-11 21:18:10 +02:00
/** @return Le nombre de mines présentes dans les 8 cases adjacentes. */
public int getNbMinesautour() { return nbMinesautour; }
2026-04-11 21:18:10 +02:00
/** @param nb Le nombre de mines adjacentes calculé. */
public void setNbMinesautour(int nb) { this.nbMinesautour = nb; }
}