• Aucun résultat trouvé

 Famille en colonne : famille qui se trouve sur la même colonne

N/A
N/A
Protected

Academic year: 2022

Partager " Famille en colonne : famille qui se trouve sur la même colonne "

Copied!
27
0
0

Texte intégral

(1)
(2)
(3)
(4)

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

(5)

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

(6)

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;

(7)

 Pas de familles :

initMatrixb()

 Génération de boules aléatoirement :

merge()

 Le score est égal à zéro

(8)

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;

} } } }

(9)

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;

} } } }

(10)

 Jetez un coup d’œil au code java donné :

 Quelles sont les familles traitées par ce code ?

 Modifiez le pour traiter le cas de 6, 7 et 8 boules

(11)
(12)
(13)
(14)
(15)

public void deleteTheSame() {

for(int i=0; i<8; i++) {

for(int j=0; j<8; j++) {

if (matrixb[i][j]) matrix[i][j]=0;

} }

initMatrixb();

}

(16)

public void gravity() {

for(int j=0; j<8; j++) { int k = 7;

for(int i=7; i>=0; i--) {

if (matrix[i][j] != 0) {

matrix[k][j] = matrix[i][j];

k--;

} }

for(int i=k; i>=0; i--) { matrix[i][j] = 0;

} }

}

(17)

public void fillGaps() {

Random x = new Random();

for(int i=0; i<8; i++) {

for(int j=0; j<8; j++) {

if (matrix[i][j] == 0) matrix[i][j] =

x.nextInt(6)+1;

} }

}

(18)

Ne pas donner la main au joueur tant qu’il y a des familles

qui se créent

notReadyToPlay()

prepar()

(19)

Vérifier s’il n’y a pas de familles avant de donner la main au joueur :

public boolean notReadyToPlay() { detectLinesAndCols();

for(int i=0; i<8; i++)

for(int j=0; j<8; j++)

if (matrixb[i][j]) return true;

return false;

}

(20)

 Préparer le jeu (donner la main au joueur) :

 Tant qu’il y a des familles (notReadyToPlay()) :

 On met à jour le score (dépend de ces familles)

score += somme()

 Supprimer ces familles

deleteTheSame()

 Déplacer les vides vers le haut

gravity()

 Remplacer les vides par de nouvelles boules

fillGaps()

(21)

4 voisines

Ce n’est pas une voisine

C’est une

cousine

(22)

public void permut(int i, int j, int ip, int jp) { if( ((i==ip) && (j==(jp+1)))

||

((i==ip) && (j==(jp-1))) ||

((j==jp) && (i==(ip+1))) ||

((j==jp) && (i==(ip-1))) ) {

int s = matrix[i][j];

matrix[i][j] = matrix[ip][jp];

matrix[ip][jp] = s;

}

}

(23)
(24)
(25)
(26)
(27)

Références

Documents relatifs

Formés sur le même schéma que les autres vertèbres: arc neural et foramen vertébral.. Les pédicules sont épais et horizontaux au niveau des

Une famille chimique est constituée de l’ensemble des éléments chimiques appartenant à une même colonne de la

P) Les ailes d’oiseau (destinées à vaincre la tonicité des pectoraux, et à permettre la bascule des épaules en arrière). La figure 3 montre, vue de dessus, l’amplitude

création graphique : direction mutualisée de la communication de chambéry et grand chambéry- tc-création graphique : direction mutualisée de la communication de chambéry et

- 1 : défauts réversibles : l’arbre peut naturellement cicatriser ou le défaut peut facilement être éliminé par intervention humaine (enlèvement du bois mort).. - 2 :

Avec les n j cases marqu´ ees en colonne j, on peut former n j (n j − 1)/2 paires de cases ou de lignes ; aucune de ces paires de lignes ne doit se reproduire dans une autre

Pour les dérivations de branchement à puissance surveillée, le CCPI doit être à proximité immédiate du distributeur à courant assigné 400 A ou à l’origine de la

Dans ce magazine, vous découvrirez notamment comment nous travaillons main dans la main avec les familles en situation difficile, comment nous accompagnons les jeunes adultes sur