Advertisement
Guest User

Untitled

a guest
Sep 19th, 2019
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. func linkRooms(roomX, roomY, direction):
  2. if direction == "N":
  3. rooms[roomX, roomY].N = true
  4. rooms[roomX, roomY+1].S = true
  5. else if direction = "E":
  6. rooms[roomX, roomY].E = true
  7. rooms[roomX+1, roomY].W = true
  8. // repeat for W and S
  9.  
  10. func roomIsSet(roomX, roomY):
  11. return rooms[roomX, roomY].N == true ||
  12. rooms[roomX, roomY].S == true ||
  13. rooms[roomX, roomY].E == true ||
  14. rooms[roomX, roomY].W == true
  15.  
  16. func pickEmptyAdjacentToNotEmpty():
  17. foreach room in random order:
  18. // only look for empty rooms
  19. if !room.IsSet(room.x, room.y):
  20. adjacentRooms = [empty list]
  21. // Find all the adjacent rooms that aren't unvisited
  22. if room.IsSet(room.x + 1, room.y):
  23. adjacentRooms += rooms[room.x + 1, room.y]
  24. if room.IsSet(room.x - 1, room.y):
  25. adjacentRooms += rooms[room.x - 1, room.y]
  26. if room.IsSet(room.x, room.y + 1):
  27. adjacentRooms += rooms[room.x, room.y + 1]
  28. if room.IsSet(room.x, room.y - 1):
  29. adjacentRooms += rooms[room.x, room.y - 1]
  30.  
  31. if len(adjacentRooms) > 0:
  32. return random entry from adjacentRooms
  33.  
  34. func randomlyAddNewRoomToMap():
  35. newRoom, adjacentNotEmptyRoom = pickEmptyAdjacentToNotEmpty()
  36. linkRooms(newRoom, adjacentNotEmptyRoom)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement