Compteur mines
This commit is contained in:
+18
-22
@@ -1,15 +1,12 @@
|
||||
import java.io.Serializable;
|
||||
import java.util.Random;
|
||||
|
||||
/**
|
||||
* Représente le plateau de jeu contenant les cases.
|
||||
*/
|
||||
public class Grille implements Serializable {
|
||||
private Case[][] plateau;
|
||||
private int lignes;
|
||||
private int colonnes;
|
||||
private int mines;
|
||||
private boolean partieTerminee; // <--- LE FAMEUX VERROU !
|
||||
private boolean partieTerminee;
|
||||
|
||||
public Grille(int l, int c, int m) {
|
||||
this.lignes = l;
|
||||
@@ -29,16 +26,25 @@ public class Grille implements Serializable {
|
||||
calculerVoisins();
|
||||
}
|
||||
|
||||
// --- Les Getters et Setters ---
|
||||
public int getLignes() { return this.lignes; }
|
||||
public int getColonnes() { return this.colonnes; }
|
||||
public Case getCase(int l, int c) { return this.plateau[l][c]; }
|
||||
|
||||
// <--- LES DEUX MÉTHODES QUI TE MANQUAIENT ICI --->
|
||||
public boolean isPartieTerminee() { return this.partieTerminee; }
|
||||
public void setPartieTerminee(boolean terminee) { this.partieTerminee = terminee; }
|
||||
|
||||
// --- Les algorithmes du jeu ---
|
||||
// --- NOUVELLE MÉTHODE : Calcul des mines restantes ---
|
||||
public int getMinesRestantes() {
|
||||
int drapeaux = 0;
|
||||
for (int i = 0; i < this.lignes; i++) {
|
||||
for (int j = 0; j < this.colonnes; j++) {
|
||||
if (this.plateau[i][j].getMarqueur() == 1) { // 1 = étoile
|
||||
drapeaux++;
|
||||
}
|
||||
}
|
||||
}
|
||||
return this.mines - drapeaux;
|
||||
}
|
||||
|
||||
private void placerMines() {
|
||||
Random rand = new Random();
|
||||
int minesPlacees = 0;
|
||||
@@ -76,16 +82,9 @@ public class Grille implements Serializable {
|
||||
|
||||
public boolean revelerCase(int l, int c) {
|
||||
Case caseCliquee = this.plateau[l][c];
|
||||
|
||||
if (caseCliquee.isRevelee() || caseCliquee.getMarqueur() == 1) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (caseCliquee.isRevelee() || caseCliquee.getMarqueur() == 1) return false;
|
||||
caseCliquee.setRevelee(true);
|
||||
|
||||
if (caseCliquee.isMinee()) {
|
||||
return true;
|
||||
}
|
||||
if (caseCliquee.isMinee()) return true;
|
||||
|
||||
if (caseCliquee.getNbMinesVoisines() == 0) {
|
||||
for (int di = -1; di <= 1; di++) {
|
||||
@@ -105,12 +104,9 @@ public class Grille implements Serializable {
|
||||
int casesRevelees = 0;
|
||||
for (int i = 0; i < this.lignes; i++) {
|
||||
for (int j = 0; j < this.colonnes; j++) {
|
||||
if (this.plateau[i][j].isRevelee()) {
|
||||
casesRevelees++;
|
||||
}
|
||||
if (this.plateau[i][j].isRevelee()) casesRevelees++;
|
||||
}
|
||||
}
|
||||
int casesVidesTotales = (this.lignes * this.colonnes) - this.mines;
|
||||
return casesRevelees == casesVidesTotales;
|
||||
return casesRevelees == ((this.lignes * this.colonnes) - this.mines);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user