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>