Jump to content

Maze generation: Difference between revisions

Line 2,517:
 
<syntaxhighlight lang="text">
size = 2015
n = 2 * size + 1
endpos = n * n - 1
startpos = n + 2
#
f = 100 / (n - 0.5)
len m[] n * n
Line 2,532 ⟶ 2,529:
x = (i - 1) mod n
y = (i - 1) div n
color 777999
move x * f - f / 2 y * f - f / 2
rect f * 1.5 f * 1.5
.
.
sleep 0.00101
.
offs[] = [ 1 n -1 (-n) ]
brdc[] = [ n - 2 -1 1 -1 ]
brdr[] = [ -1 n - 2 -1 1 ]
#
proc m_maze pos . .
Line 2,549 ⟶ 2,544:
for i = 4 downto 1
d = random i
dir = offs[d[d]]
d[d] = d[i]
rif m[pos + dir] = (1 and m[pos -+ 1)2 * dir] div<> n0
c = ( m[pos -+ 1)dir] mod= n0
posn = call m_maze pos + 2 * offs[dir]
if c <> brdc[dir] and r <> brdr[dir] and m[posn] <> 0
posn = pos + 2 * offs[dir]
m[pos + offs[dir]] = 0
call m_maze posn
.
.
.
endpos = n * n - 1
startpos = n + 2
proc make_maze . .
for i = 1 to len m[]
m[i] = 1
.
for i = 1 to n
m[i] = 2
m[posn +* offs[dir]i] = 02
m[n * i - n + 1] = 2
m[n * n - n + i] = 2
.
call m_maze startpos
m[endpos] = 0
endpos += n
.
call make_maze
2,056

edits

Cookies help us deliver our services. By using our services, you agree to our use of cookies.