Saya mencoba membuat secara acak peta kamar yang terhubung dengan pintu, dan saya berhasil membuatnya dengan menggunakan kode ini:
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;
}
}
Namun, ini tidak memungkinkan saya untuk mencari tahu pintu mana yang diberikan kamar. Saya harus bisa mengetahuinya sehingga saya bisa menempatkan pintu di tempat yang benar sehingga mereka dapat digunakan untuk kamar sebelah. Apakah "peta pintar" semacam ini dimungkinkan dengan algoritma saya saat ini, atau haruskah saya memulai kembali? Langkah apa yang bisa saya ambil untuk membuatnya bekerja?
Saya menggunakan Slick2d dan Java untuk ini
Terima kasih.