Maze generation: Difference between revisions
Content added Content deleted
Line 2,560: | Line 2,560: | ||
. |
. |
||
offs[] = [ 1 n -1 (-n) ] |
offs[] = [ 1 n -1 (-n) ] |
||
brdc[] = [ n - 2 -1 1 -1 ] |
|||
func getposn pos dir . posn . |
|||
brdr[] = [ -1 n - 2 -1 1 ] |
|||
⚫ | |||
r = pos div n |
|||
c = pos mod n |
|||
if dir = 0 and c <> n - 2 or dir = 1 and r <> n - 2 or dir = 2 and c <> 1 or dir = 3 and r <> 1 |
|||
⚫ | |||
. |
|||
. |
|||
func m_maze pos . . |
func m_maze pos . . |
||
m[pos] = 0 |
m[pos] = 0 |
||
Line 2,576: | Line 2,571: | ||
dir = d[d] |
dir = d[d] |
||
d[d] = d[i] |
d[d] = d[i] |
||
r = pos div n |
|||
c = pos mod n |
|||
⚫ | |||
if c <> brdc[dir] and r <> brdr[dir] and m[posn] <> 0 |
|||
posn = pos + 2 * offs[dir] |
|||
m[(pos + posn) div 2] = 0 |
m[(pos + posn) div 2] = 0 |
||
call m_maze posn |
call m_maze posn |
||
Line 2,590: | Line 2,588: | ||
m[endpos] = 0 |
m[endpos] = 0 |
||
. |
. |
||
⚫ | |||
call make_maze |
call make_maze |
||
call show_maze</lang> |
call show_maze</lang> |