Dungon.java (808B)
1 package Monster; 2 3 public class Dungon { 4 private Room[][] rooms; 5 6 public Dungon(int w, int h) { 7 rooms = new Room[h][w]; 8 updateConnections(); 9 } 10 11 public void setRoom(int x, int y, Room room) { 12 rooms[y][x] = room; 13 updateConnections(); 14 updateConnections(); 15 } 16 17 public Room getRoom(int x, int y) { 18 updateConnections(); 19 return rooms[y][x]; 20 } 21 22 private void updateConnections() { 23 for (int r = 0; r < rooms.length; r++) { 24 for (int c = 0; c < rooms[r].length; c++) { 25 if (rooms[r][c] != null) { 26 if (r > 0) 27 rooms[r][c].setNorth(rooms[r - 1][c]); 28 if (r < rooms.length - 1) 29 rooms[r][c].setSouth(rooms[r + 1][c]); 30 if (c > 0) 31 rooms[r][c].setWest(rooms[r][c - 1]); 32 if (c < rooms[r].length - 1) 33 rooms[r][c].setEast(rooms[r][c + 1]); 34 } 35 } 36 } 37 } 38 }