Projet : ElementZ Lite
On appellera dans ce qui suit famille à n boules un groupe de n boules voisines ayant la même couleur
Famille en ligne : famille qui se trouve sur la même ligne
Famille en colonne : famille qui se trouve sur la même colonne
But du jeu :
Il faut permuter deux boules voisines de telle sorte à former
des familles en lignes et/ou en colonne à 3, 4 ou 5 boules
Famille en ligne à 5 boules
Famille en colonne à 5 boules Famille en ligne
à 4 boules
Famille en colonne à 4 boules Famille en colonne
À 3 boules Famille en ligne
à 3 boules
Remarque : il peut y avoir des familles à 6, 7 et 8 boules
Matrice du jeu
private int[][] matrix = new int[8][8];
Matrice des familles
private boolean[][] matrixb = new boolean[8][8];
Le score
private int score;
Pas de familles :
initMatrixb()
Génération de boules aléatoirement :
merge()
Le score est égal à zéro
public void detectLine(int n) { for(int i=0; i<8; i++) {
for(int j=0; j<(8-n+1); j++) { boolean lineOk = true;
int first = matrix[i][j];
int k = j;
while(k<j+n && lineOk) {
if (matrix[i][k] != first && matrix[i][k]!=0) lineOk = false;
k++;
}
if (lineOk) {
for (k=j; k<(j+n);k++) matrixb[i][k]=true;
j+=n+1;
} } } }
public void detectCol(int n) { for(int i=0; i<8; i++) {
for(int j=0; j<(8-n+1); j++) { boolean lineOk = true;
int first = matrix[j][i];
int k = j;
while(k<j+n && lineOk) {
if (matrix[k][i] != first && matrix[k][i]!=0) lineOk = false;
k++;
}
if (lineOk) {
for (k=j; k<(j+n);k++) matrixb[k][i]=true;
j+=n+1;
} } } }