Passer d'une matrice boolean à une matrice int
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:
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> |