Derniere version du jeu
This commit is contained in:
@@ -1,28 +1,92 @@
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* Représente une case individuelle sur le plateau du Démineur.
|
||||
* Elle contient son état (minée, révélée) et son marqueur (étoile, interrogation).
|
||||
*/
|
||||
public class Case implements Serializable {
|
||||
|
||||
/** Constante indiquant que la case n'a aucun marqueur. */
|
||||
public static final int MARQUEUR_VIDE = 0;
|
||||
|
||||
/** Constante indiquant que la case est marquée d'une étoile (mine supposée). */
|
||||
public static final int MARQUEUR_ETOILE = 1;
|
||||
|
||||
/** Constante indiquant que la case est marquée d'un point d'interrogation (doute). */
|
||||
public static final int MARQUEUR_INTERROGATION = 2;
|
||||
|
||||
/** Constante définissant le nombre total d'états de marqueurs possibles. */
|
||||
private static final int NOMBRE_ETATS_MARQUEUR = 3;
|
||||
|
||||
/** Indique si la case contient une mine (true) ou non (false). */
|
||||
private boolean minee;
|
||||
|
||||
/** Indique si la case a été cliquée et révélée au joueur. */
|
||||
private boolean revelee;
|
||||
|
||||
/** Stocke l'état actuel du marqueur posé par le joueur (clic droit). */
|
||||
private int marqueur;
|
||||
|
||||
/** Stocke le nombre de mines présentes dans les 8 cases adjacentes. */
|
||||
private int nbMinesVoisines;
|
||||
|
||||
/**
|
||||
* Constructeur par défaut d'une Case.
|
||||
* Initialise une case vide, cachée et sans marqueur.
|
||||
*/
|
||||
public Case() {
|
||||
this.minee = false;
|
||||
this.revelee = false;
|
||||
this.marqueur = 0;
|
||||
this.marqueur = MARQUEUR_VIDE;
|
||||
this.nbMinesVoisines = 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Vérifie si la case contient une mine.
|
||||
* @return true si minée, false sinon.
|
||||
*/
|
||||
public boolean isMinee() { return this.minee; }
|
||||
|
||||
/**
|
||||
* Vérifie si la case est révélée.
|
||||
* @return true si révélée, false sinon.
|
||||
*/
|
||||
public boolean isRevelee() { return this.revelee; }
|
||||
|
||||
/**
|
||||
* Récupère le marqueur actuel de la case.
|
||||
* @return l'entier correspondant au type de marqueur.
|
||||
*/
|
||||
public int getMarqueur() { return this.marqueur; }
|
||||
|
||||
/**
|
||||
* Récupère le nombre de mines autour de cette case.
|
||||
* @return le nombre de mines voisines.
|
||||
*/
|
||||
public int getNbMinesVoisines() { return this.nbMinesVoisines; }
|
||||
|
||||
public void setMinee(boolean m) { this.minee = m; }
|
||||
public void setRevelee(boolean r) { this.revelee = r; }
|
||||
public void setNbMinesVoisines(int n) { this.nbMinesVoisines = n; }
|
||||
/**
|
||||
* Définit si la case doit contenir une mine ou non.
|
||||
* @param estMinee true pour placer une mine, false pour l'enlever.
|
||||
*/
|
||||
public void setMinee(boolean estMinee) { this.minee = estMinee; }
|
||||
|
||||
/**
|
||||
* Modifie l'état de révélation de la case.
|
||||
* @param estRevelee true pour révéler la case, false pour la cacher.
|
||||
*/
|
||||
public void setRevelee(boolean estRevelee) { this.revelee = estRevelee; }
|
||||
|
||||
/**
|
||||
* Enregistre le nombre de mines calculé autour de cette case.
|
||||
* @param nombre le nombre de mines voisines (de 0 à 8).
|
||||
*/
|
||||
public void setNbMinesVoisines(int nombre) { this.nbMinesVoisines = nombre; }
|
||||
|
||||
/**
|
||||
* Alterne le marqueur de la case dans l'ordre : Vide -> Étoile -> Interrogation -> Vide.
|
||||
*/
|
||||
public void changerMarqueur() {
|
||||
this.marqueur = (this.marqueur + 1) % 3;
|
||||
this.marqueur = (this.marqueur + 1) % NOMBRE_ETATS_MARQUEUR;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user