Bonsoir,
j'utilise 2 matrices: une matrice boolean initialisée à false, une matrice int initialisé à -1, j'ai mis quelques cases à true et je cherche à calculer le nombre de true autour d'une case( pour faire simple j'ai prie la case [0][0]et je compte les true autour) que je met dans la matrice int.
Mon soucis c'est que j'ai une boucle infini,mon raisonnement( que j'ai mis en commentaire) me semble bon!je tourne en rond, je ne vois pas ce qui cloche.
Je suis débutante et je ne connais pas encore la programmation objets
Désolée pour le nombre de ligne!
Merci pour votre aide
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58 <div style="margin-left:40px"><code type="java"> lass EssaiMatrice{ public static void main(String[]args){ boolean[][]tabBoolean=new boolean[8][8]; for(int i=0;i<tabBoolean.length;i++){ for(int j=0;j<tabBoolean[i].length;j++) tabBoolean[i][j]=false; } tabBoolean[0][1]=true; tabBoolean[1][1]=true; tabBoolean[1][6]=true; tabBoolean[1][7]=true; for(int i=0;i<tabBoolean.length;i++){//verif tableau Terminal.ecrireString(i + " "); for(int j=0;j<tabBoolean[i].length;j++) Terminal.ecrireString(tabBoolean[i][j] + ""); Terminal.sautDeLigne(); } int[][] SaisiCase=new int[8][8];// enregistre le nbre true adjacent for(int i=0;i<SaisiCase.length;i++){//initialisation à -1 for(int j=0;j<SaisiCase[i].length;j++) SaisiCase[i][j]=-1; }//for for(int i=0;i<SaisiCase.length;i++){//test affichage : affiche -1 Terminal.ecrireString(i + ""); for(int j=0;j<SaisiCase[i].length;j++) Terminal.ecrireString(SaisiCase[i][j] + ""); Terminal.sautDeLigne(); }//for ///////////////test sur la 1ere ligne, le coin gauche int Valtrue=0; int ligne=0; int col=0; int i=0; int j=0; for(i=0;i<SaisiCase.length;i++){ for(j=0;j<SaisiCase[i].length;j++) if(tabBoolean[i][j]==false){ //si la case est a false, je calcule le nombre de true autour ligne=0; col=0; if(ligne==0){ //1ere ligne if(col==0){ //coin superieur gauche for(i=ligne;i<=ligne+1;i++)//je regarde dans les cases adjacentes for(j=col;j<=col+1;j++) if(tabBoolean[i][j]==true){// si il y a un true a côte de la case Valtrue++; //je compte le nbre de true autour SaisiCase[i][j]=Valtrue;// je mets dans le tableau SaisiCase //le nbre de true trouve Terminal.ecrireStringln("[" + i + "][" + j + "]=" + Valtrue); } } } }//1 for }//main }//class <code type="java"></code></div>
Partager