View difference between Paste ID: 3NEf0963 and RdVK5MTS
SHOW: | | - or go back to the newest paste.
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 = false
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-
	// Pick a random room that's not set that's adjacent to a room that IS set
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)