Bonjour j’ai conçu un algorithme pour mettre un objet à une position unique sur la map mais il ne fonctionne pas, pourriez-vous m’aider ?
// si alone == true, ça signifique que l'objet sera placé à un emplacement vide
boolean alone;
// On retient les positions (oldX, oldY) où se trouvent déjà un objet
ArrayList<Integer> oldX = new ArrayList<>();
ArrayList<Integer> oldY = new ArrayList<>();
// Pour chaque objet o du niveau actuel
for (GameObject o: level.getObjects()) {
alone = false;
int posX = Random(SIZE_X);
int posY = Random(SIZE_Y);
while (!alone) {
alone = true;
for (int j = 0; j < oldX.size(); j++) {
// si il existe un object déjà à la position (posX, posY)
if (oldX.get(j) == posX && oldY.get(j) == posY) {
alone = false;
// Refaire un nouvel essai
posX = Random(SIZE_X);
posY = Random(SIZE_X);
break;
}
}
}
// Ici on est certain que alone == true, donc que l'emplacement est libre pour y poser l'objet o
o.setPos(posX, posY);
}
Il compile mais je trouve encore parfois deux objets à la même position!!
+0
-0