Maze generation: Difference between revisions
Content added Content deleted
m (→{{header|Icon}} and {{header|Unicon}}: + new image) |
(→{{header|Icon}} and {{header|Unicon}}: + enhanced window parameters, title, simplified wall clearing) |
||
Line 1,084: | Line 1,084: | ||
every d := !rd do |
every d := !rd do |
||
case d of { # try all, clearing wall on success |
case d of { # try all, clearing wall on success |
||
NORTH : maze[r,c] +:= ( GenerateMaze(r-1,c), |
NORTH : maze[r,c] +:= ( GenerateMaze(r-1,c), d) |
||
EAST : maze[r,c] +:= ( GenerateMaze(r,c+1), |
EAST : maze[r,c] +:= ( GenerateMaze(r,c+1), d) |
||
SOUTH : maze[r,c] +:= ( GenerateMaze(r+1,c), |
SOUTH : maze[r,c] +:= ( GenerateMaze(r+1,c), d) |
||
WEST : maze[r,c] +:= ( GenerateMaze(r,c-1), |
WEST : maze[r,c] +:= ( GenerateMaze(r,c-1), d) |
||
} |
} |
||
return # signal success to caller |
return # signal success to caller |
||
Line 1,105: | Line 1,105: | ||
ww := (cw := (mw := *maze[1]) * CELL) + 2 * BORDER # win, cell, maze width |
ww := (cw := (mw := *maze[1]) * CELL) + 2 * BORDER # win, cell, maze width |
||
wparms := [ "Maze", |
wparms := [ sprintf("Maze %dx%d",*maze,*maze[1]), # window parameters |
||
"g","bg=white","canvas=hidden", |
|||
sprintf("size=%d,%d",ww,wh), |
sprintf("size=%d,%d",ww,wh), |
||
sprintf("dx=%d",BORDER), |
sprintf("dx=%d",BORDER), |