Im essayant de générer au hasard une carte des pièces connectées par des portes, et j'ai réussi à en générer une en utilisant ce code:
public void generate(GameContainer gc) {
rooms = new ArrayList<Room>();
startingRoom = new Room(0);
startingRoom.setPosition(viewport.getCenterX(), viewport.getCenterY());
lastRoom = startingRoom;
rooms.add(startingRoom);
int roomsize = 25;
for (int i = 0; i <= (1000 + Math.random() * 4000); i++) {
Room room = new Room(i + 1);
int direction = (int) (Math.random() * (4));
switch (direction) {
case 0:
room.setPosition(lastRoom.x, lastRoom.y - roomsize);
break;
case 1:
room.setPosition(lastRoom.x, lastRoom.y + roomsize);
break;
case 2:
room.setPosition(lastRoom.x + roomsize, lastRoom.y);
break;
case 3:
room.setPosition(lastRoom.x - roomsize, lastRoom.y);
break;
default:
room.setPosition(lastRoom.x, lastRoom.y - roomsize);
break;
}
rooms.add(room);
lastRoom = room;
}
}
Cependant, cela ne me permet pas de savoir quelles portes a la chambre donnée. Je dois être en mesure de comprendre cela afin de pouvoir placer les portes aux bons endroits afin qu'elles puissent être utilisées pour attacher des pièces. Ce type de "carte intelligente" est-il possible avec mon algorithme actuel, ou dois-je recommencer? Quelles mesures puis-je prendre pour que cela fonctionne?
J'utilise Slick2d et Java pour cela
Merci.