Bonsoir,
je cherche à recuperer les valeurs d'un tableau boolean pour les afficher dans un tableau int.J'ai commencé par la premiere ligne, premiere case [0][0],si à coté il y a 3 true, je dois afficher 3 dans l'autre tableau.
J'ai l'impression que mon raisonnement est bon mais il m'affiche n'importe quoi!
Si quelqu'un à une idée..Merci
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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
class Test5{
 	public static boolean [][]InitialiseTabBombes(){
 		boolean [][]tabBombes=new boolean[8][8];
 		for(int i=0;i<tabBombes.length;i++)
 			for(int j=0;j<tabBombes[i].length;j++)
 				tabBombes[i][j] = false; 			
 		int CompteurBombes=0;
 		while(CompteurBombes<10){
 			int x=(int)(Math.random()*8); //coordonnée aléatoire de la bombe
 			int y=(int)(Math.random()*8);
 			if(tabBombes[x][y]==false){  // si pas de bombe, j'en place  une;
 				tabBombes[x][y]=true;
 				CompteurBombes++;
 			}
 		}
 		return tabBombes;
 	} 	
	public static void afficherTabBombes(boolean[][]tab){
		char[]alpha={' ','A','B','C','D','E','F','G','H'};
		for(int i=0;i<alpha.length;i++)
			Terminal.ecrireString(alpha[i]+" ");
		Terminal.sautDeLigne();
		for(int i=0;i<tab.length;i++){
			Terminal.ecrireString(i+1 + " ");
			for(int j=0;j<tab[i].length;j++)
				if(tab[i][j])
					Terminal.ecrireString("x ");
				else
					Terminal.ecrireString(". ");
		Terminal.sautDeLigne();
		}
	}
	//init tableau saisicase;
	public static int [][]InitialiseSaisiCase(){
		int[][] SaisiCase=new int[8][8];// enregistre les bombes
		for(int i=0;i<SaisiCase.length;i++){//initialisation à -1
			for(int j=0;j<SaisiCase[i].length;j++) 
				SaisiCase[i][j]=-1;
			}
		return SaisiCase;
		}
		public static void affichereSaisiCase(int[][]tabCase){
			for(int i=0;i<tabCase.length;i++){
				Terminal.ecrireString(i+1+ " ");
				for(int j=0;j<tabCase[i].length;j++)
					Terminal.ecrireString(tabCase[i][j] + "");
			Terminal.sautDeLigne();
			}//for
		}		
	public static void main(String[]args){
		boolean[][]tabBombes=InitialiseTabBombes();
		afficherTabBombes(tabBombes);
		Terminal.sautDeLigne();
		int[][]SaisiCase=InitialiseSaisiCase();
		//calcul des cases adjacentes
		int bombe=0;
		int ligne=0;
		int col=0;
		int i=0;
		int j=0;
		for(int k=0;k<SaisiCase.length;k++){
			for(int l=0;l <SaisiCase[k].length;l++)
				if(tabBombes[k][l]==false){//si la case n'est pas une bombe
					ligne=0;
					col=0;
					if(ligne==0){ //1ere ligne
						if(col==0){ //coin sup gauche
							for(i=ligne;i<=ligne+1;i++)
								for(j=col;j<=col+1;j++)
									if(tabBombes[ligne][col]==true)
										bombe++;
						SaisiCase[ligne][col]=bombe;
						}								
						else if (col==SaisiCase.length-1){ // coin sup droit
							for(i=ligne;i<=ligne+1;i++)
								for(j=col-1;j<=col;j++)
									if(tabBombes[ligne][col]==true)
										bombe++;
							SaisiCase[ligne][col]=bombe;
						}//else if
						else{ // bord haut
							for(i=ligne;i<=ligne+1;i++)
								for(j=col-1;j<=col+1;j++)
									if(tabBombes[ligne][col]==true)
										bombe++;
							SaisiCase[ligne][col]=bombe;
						}// else
 
					}// if
 
				}//if false	
		}//for
		affichereSaisiCase(SaisiCase);
	}//main
 }