• 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

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

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

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

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

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