Sto cercando di generare in modo casuale una mappa di stanze collegate da porte e sono riuscita a generarne una usando questo codice:
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;
}
}
Tuttavia, questo non mi permette di scoprire quali porte ha la stanza data. Devo essere in grado di capirlo in modo da poter posizionare le porte nei posti corretti in modo che possano essere utilizzate per annettere le stanze. Questo tipo di "smart map" è possibile con il mio attuale algoritmo o dovrei ricominciare da capo? Quali passi posso prendere per farlo funzionare?
Sto usando Slick2d e Java per questo
Grazie.