Forum Clubic

Problème objet unique

Bonjour,
J’aiun labyrinthe (de largeur NbColonne et de hauteur NbLigne) qui est un tableau de Pièce,
la Piece etant defini par 4 caractère et un numéro.

Mon problème: Je n’arrive pas à attribuer à chaque pièce un numéro unique.
Au final toutes mes pièces ont le même numéro (celui de la dernière pièce).
Je ne comprend pas pourquoi et je ne vois pas comment faire autrement,
Si vous pouviez m’aider ?

Piece salleDuLabyrinthe = new Piece(’#’,’#’,’#’,’#’,0);
Piece[][] labyrinthe = new Piece[this.getNbLigne()][this.getNbColonne()];
int incremente = 0;
int i,j;
for (i=0;i<this.getNbLigne();i++){
for (j=0; j<this.getNbColonne(); j++) {
incremente += 1 ;
labyrinthe[i][j] = salleDuLabyrinthe;
labyrinthe[i][j].setNumeroPiece(incremente);
}
}
return labyrinthe[ligne][colonne].getNumeroPiece();

Merci d’avance
Edité le 13/04/2009 à 17:38

C’est pas trop compliqué : si tu avais fait un toString() sur ce qu’il y a dans ton tableau labyrinthe, tu aurais vu que tu as toujours le même hashCode, et toutes tes cellules pointent sur la même pièce. Donc suffit de modifier la première pour modifier la dernière. Tente ça :

Piece[][] labyrinthe = new Piece[this.getNbLigne()][this.getNbColonne()];
int incremente = 0;
int i,j;
for (i=0;i<this.getNbLigne();i++){
for (j=0; j<this.getNbColonne(); j++) {
incremente += 1 ;
labyrinthe[i][j] = new Piece('#','#','#','#',0);;
labyrinthe[i][j].setNumeroPiece(incremente);
}
}
return labyrinthe[ligne][colonne].getNumeroPiece();

Merci. Ca marche.