Ajout des fonctions necessaire et la vue de grille
This commit is contained in:
@@ -0,0 +1,64 @@
|
||||
package game;
|
||||
|
||||
import java.util.Random;
|
||||
|
||||
public class EtatJeu {
|
||||
|
||||
public static final int NB_LIGNES = 6;
|
||||
public static final int NB_COLONNES = 6;
|
||||
public static final int NB_TYPES = 7;
|
||||
|
||||
private final int[][] grille = new int[NB_LIGNES][NB_COLONNES];
|
||||
private final Random aleatoire;
|
||||
|
||||
public EtatJeu() {
|
||||
aleatoire = new Random();
|
||||
initialiserGrilleSansTriples();
|
||||
}
|
||||
|
||||
// --- Lecture / écriture ---
|
||||
public int obtenirCase(int ligne, int colonne) {
|
||||
return grille[ligne][colonne];
|
||||
}
|
||||
|
||||
public void definirCase(int ligne, int colonne, int valeur) {
|
||||
grille[ligne][colonne] = valeur;
|
||||
}
|
||||
|
||||
// --- Initialisation de la grille sans séries de 3 ---
|
||||
private void initialiserGrilleSansTriples() {
|
||||
for (int ligne = 0; ligne < NB_LIGNES; ligne++) {
|
||||
for (int colonne = 0; colonne < NB_COLONNES; colonne++) {
|
||||
|
||||
int valeur;
|
||||
do {
|
||||
valeur = aleatoire.nextInt(NB_TYPES); // 0..6
|
||||
} while (creeTriple(ligne, colonne, valeur));
|
||||
|
||||
grille[ligne][colonne] = valeur;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Renvoie true si mettre "valeur" à (ligne, colonne) créerait une série de 3
|
||||
private boolean creeTriple(int ligne, int colonne, int valeur) {
|
||||
|
||||
// Test horizontal : XXX à gauche
|
||||
if (colonne >= 2) {
|
||||
if (grille[ligne][colonne - 1] == valeur &&
|
||||
grille[ligne][colonne - 2] == valeur) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
// Test vertical : XXX au-dessus
|
||||
if (ligne >= 2) {
|
||||
if (grille[ligne - 1][colonne] == valeur &&
|
||||
grille[ligne - 2][colonne] == valeur) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user