Files
SAE21_2025/Grille.java
T

70 lines
1.5 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);
}
}
}
// interface graphique
public int getLigne() { return ligne; }
public int getColonne() { return colonne; }
public Case getCase(int l, int c) { return grille[l][c]; }
}