64 lines
1.3 KiB
Java
64 lines
1.3 KiB
Java
import java.util.Random;
|
|
|
|
public class Grille {
|
|
|
|
private Case[][] grille;
|
|
private int ligne,colonne;
|
|
private Random generateur = new Random();
|
|
|
|
public Grille(int ligne,int colonne) {
|
|
this.ligne = ligne;
|
|
this.colonne = colonne;
|
|
this.grille = new Case[ligne][colonne];
|
|
for(int i =0;i<ligne;i++){
|
|
for(int j =0;j<colonne;j++){
|
|
this.grille[i][j] = new Case();
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
public void placerMines(int nbMines){
|
|
int randomLigne,randomColonne;
|
|
for(int i=0;i<nbMines;i++){
|
|
randomLigne = generateur.nextInt(ligne);
|
|
randomColonne = generateur.nextInt(colonne);
|
|
if (grille[randomLigne][randomColonne].getEstMinee() == true){
|
|
i--; } else {
|
|
grille[randomLigne][randomColonne].setEstMinee(true);
|
|
}
|
|
}
|
|
}
|
|
|
|
public void compterMinesVoisines(int l, int c){
|
|
int compteur = 0;
|
|
for(int i = -1; i <= 1; i++){
|
|
for(int j = -1; j <= 1; j++){
|
|
int vL = l + i;
|
|
int vC = c + j;
|
|
if(vL >= 0 && vL < ligne && vC >= 0 && vC < colonne){
|
|
if (grille[vL][vC].getEstMinee()) {
|
|
compteur++;
|
|
}
|
|
|
|
}
|
|
|
|
|
|
}
|
|
}
|
|
grille[l][c].setNbMinesautour(compteur);
|
|
}
|
|
|
|
public void calculerToutesLesMines(){
|
|
for(int i =0;i<ligne;i++){
|
|
for(int j =0;j<colonne;j++){
|
|
compterMinesVoisines(i,j);
|
|
|
|
}
|
|
}
|
|
|
|
|
|
}
|
|
|
|
}
|