Bonsoir à tout, je dois resoudre un sudoku, pour cela j'ai plusieurs classes, nottament une plateau, et une case. Je veux cloner mon plateau. Voila mon code:
Ma classe Case
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 public class Case implements Cloneable { /*Constructeurs, declaration de variables sont mis, mais inutile pour mon probleme */ public Object clone() { Object o = null; try { o = super.clone(); } catch(CloneNotSupportedException e) { System.out.println("Seb"); } return o; } }
Ma classe Plateau
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 public class Plateau implements Cloneable { public Object clone(){ Plateau o = null; try { o = (Plateau)super.clone(); } catch (CloneNotSupportedException e){ System.out.println("Seb t mort"); } for(int i=0 ; i<4; i++){ for(int j=0 ; j<4; j++){ o.sudokuFils[i][j] = (Case)o.sudokuPere[i][j].clone(); } } return (Plateau)o; } public Object clonage(){ // Case [][] sudokuFils; // int taille = sudokuPere[0].length; sudokuFils = new Case[4][4]; for(int i=0 ; i<4; i++){ for(int j=0 ; j<4; j++){ sudokuFils[i][j] = (Case)sudokuPere[i][j].clone(); } } return sudokuFils; }
La methode main
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 public static void main(String[] args) throws IOException { int taillePlate = 4; Plateau jeu = new Plateau(taillePlate); Plateau jeu2 = new Plateau(taillePlate); jeu.sudokuPere[0][0].motif = "1"; jeu.sudokuPere[1][2].motif = "3"; jeu.sudokuPere[3][3].motif = "9"; jeu.afficher(); jeu2.clonage(); jeu2.afficher();
Mon Probleme:
Le resultat de "jeu2.afficher()" est:
[ ][ ][ ][ ]
[ ][ ][ ][ ]
[ ][ ][ ][ ]
[ ][ ][ ][ ]
Il me créé juste un nouveau plateau mais sans mettre les valeurs !! Et je voudrais bien sur avoir les valeurs.
Merci d'avance pour votre aide, qui me sera tres precieuse.
Cordialement.
David.
Partager