Salut !

J'ai un petit souci avec mon code java pour implémenter le jeu du taquin. Alors, le problème c'est que lorsque je tente d'engendre les fils suite aux déplacements possibles de la case vides , j'ai des cases vides doubles , puis avec les itérations tout est vide

Voici ma fonction : executer ( engendre fils) :

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
	public ArrayList<Noeud> executer (){
			Jeu LeJeu ;
			Jeu LeJeu1;
			Jeu LeJeu2;
			Jeu LeJeu3;
 
			ArrayList<Noeud> l = new ArrayList<Noeud>();
 
 
					if (possible(Operateurs.HAUT))  {						
						LeJeu = new Jeu(jeu.lejeu,jeu.case_vide);
						LeJeu.lejeu[jeu.case_vide.x][jeu.case_vide.y]=jeu.lejeu[jeu.case_vide.x-1][jeu.case_vide.y];
				        LeJeu.lejeu[jeu.case_vide.x-1][jeu.case_vide.y]='V';
				    	LeJeu.case_vide.x = jeu.case_vide.x-1;
 
						l.add(new Noeud(this,LeJeu,cout_d(),cout_f(but)));
 
				}
 
					if (possible(Operateurs.DROITE)) {					
						 LeJeu1 = new Jeu(jeu.lejeu,jeu.case_vide);
						LeJeu1.lejeu[jeu.case_vide.x][jeu.case_vide.y]=jeu.lejeu[jeu.case_vide.x][jeu.case_vide.y+1];
				        LeJeu1.lejeu[jeu.case_vide.x][jeu.case_vide.y+1]='V';
						LeJeu1.case_vide.y = jeu.case_vide.y+1;
 
						l.add(new Noeud(this,LeJeu1,cout_d(),cout_f(but)));
 
					}
 
					if (possible(Operateurs.BAS)) {						
						 LeJeu2 = new Jeu(jeu.lejeu,jeu.case_vide);
						LeJeu2.lejeu[jeu.case_vide.x][jeu.case_vide.y]=jeu.lejeu[jeu.case_vide.x+1][jeu.case_vide.y];
				        LeJeu2.lejeu[jeu.case_vide.x+1][jeu.case_vide.y]='V';
						LeJeu2.case_vide.x = jeu.case_vide.x+1;
 
						l.add(new Noeud(this,LeJeu2,cout_d(),cout_f(but)));
 
					} 
 
					if (possible(Operateurs.GAUCHE)) { 					
						 LeJeu3 = new Jeu(jeu.lejeu,jeu.case_vide);
					    LeJeu3.lejeu[jeu.case_vide.x][jeu.case_vide.y]=jeu.lejeu[jeu.case_vide.x][jeu.case_vide.y-1];
					    LeJeu3.lejeu[jeu.case_vide.x][jeu.case_vide.y-1]='V';
						LeJeu3.case_vide.y = jeu.case_vide.y-1;
 
						l.add(new Noeud(this,LeJeu3,cout_d(),cout_f(but)));
 
					}
								return l;
								}
et le résultat est pour cette matrice de jeu :

|2||3||V|
|5||4||1|
|6||8||7|

c'est =>

|2||V||3|
|5||4||V|
|6||8||7|


|2||V||3|
|5||4||V|
|6||8||7|