public Room BinaryTreeDungeon(int i) { Room room; if (i == 0) { room = new Room("RS", RoomType.STARTroom, 0); } else if (i == _numberOfRooms - 1) { room = new Room("RE", RoomType.EXITroom, 0); ExitRoom = room; } else { room = new Room(IdFactory.GetRoomId(), RoomType.ORDINARYroom, RoomCap()); } rooms.Add(room); int j = 2 * i + 1; int k = 2 * i + 2; if (j < _numberOfRooms) { room.Connect(BinaryTreeDungeon(j)); } if (k < _numberOfRooms) { room.Connect(BinaryTreeDungeon(k)); } return(room); }
public void LinearDungeon() { startRoom = new Room("RS", RoomType.STARTroom, 0); exitRoom = new Room("RE", RoomType.EXITroom, 0); rooms.Add(startRoom); Room prevRoom = startRoom; for (int i = 0; i < _numberOfRooms - 2; i++) { Room currRoom = new Room(IdFactory.GetRoomId(), RoomType.ORDINARYroom, RoomCap()); rooms.Add(currRoom); currRoom.Connect(prevRoom); prevRoom = currRoom; } rooms.Add(exitRoom); prevRoom.Connect(exitRoom); }