Maze generation: Difference between revisions

(add a typescript solution)
Line 2,526:
#
background 000
funcproc show_maze . .
clear
for i = 1 to len m[]
if m[i] = 0
x = (i - 1) mod n
y = (i - 1) div n
color 777
move x * f - f / 2 y * f - f / 2
rect f * 1.5 f * 1.5
.
.
sleep 0.001
.
offs[] = [ 1 n -1 (-n) ]
Line 2,543:
brdr[] = [ -1 n - 2 -1 1 ]
#
funcproc m_maze pos . .
m[pos] = 0
call show_maze
d[] = [ 1 2 3 4 ]
for i = 4 downto 1
d = random i
dir = d[d]
d[d] = d[i]
r = (pos - 1) div n
c = (pos - 1) mod n
posn = pos + 2 * offs[dir]
if c <> brdc[dir] and r <> brdr[dir] and m[posn] <> 0
posn = pos + 2 * offs[dir]
mif c <> brdc[(posdir] +and posn)r div<> 2brdr[dir] and m[posn] =<> 0
call m_maze posn = pos + 2 * offs[dir]
posn = pos + 2 *m[pos + offs[dir]] = 0
.
call m_maze posn
.
.
.
funcproc make_maze . .
for i = 1 to len m[]
m[i] = 1
.
call m_maze startpos
m[endpos] = 0
.
call make_maze
1,973

edits