Anonymous user
Maze generation: Difference between revisions
m
→{{header|Icon}} and {{header|Unicon}}: more prep for solver, mark entrance/exit
m (→{{header|Icon}} and {{header|Unicon}}: added a cleanup step) |
m (→{{header|Icon}} and {{header|Unicon}}: more prep for solver, mark entrance/exit) |
||
Line 1,051:
end
$define SEEN
$define FOYER 16 # entrance and exit
$define NORTH 8
$define EAST 4
$define SOUTH 2
$define WEST 1
$define EMPTY 0 # like new
procedure GenerateMaze(r,c) #: Depth First Maze Generation
Line 1,068 ⟶ 1,069:
c := ?w # ... col,
case 2 ^(?4 - 1) of { # ... side
NORTH : maze[r := 1,c] +:= NORTH + FOYER
EAST : maze[r, c := w] +:= EAST + FOYER
SOUTH : maze[r := h,c] +:= SOUTH + FOYER
WEST : maze[r,c := 1] +:= WEST + FOYER
}
}
rd := [NORTH, EAST, SOUTH, WEST] # initial list of all directions
GenerateMaze(r,c) # recurse through maze
return 1(.maze,maze := &null) # return maze and reset for next
}
|