迷路を生成してみましょう。下にある迷路生成アルゴリズムより、もっと高速なアルゴリズムがあると思うので、自らアルゴリズムを考えてみるのもよいでしょう。
m=5:n=5:sx=50:sy=50:k=m+n
scx=(sx+1)*m+n*(sx+2):scy=(sy+1)*m+n*(sy+2)+21+12+6-k:screen 0,scx,scy
*e
clrobj
color
boxf
color 255,255,255
randomize
dim d,sx+2,sy+2:dim s,(sx+2)*(sy+2),2
s.0.0=1:s.0.1=1:d.1.1=1
i=0
repeat
r=rnd.4
x=s.i.0:y=s.i.1:h=0:g=0
if x>1&d(x-1,y)!1{h=1:if r=0{x-:d.x.y=1:i+:s.i.0=x:s.i.1=y:g=1:boxf x*k,y*k,(x+1)*k+n-1,y*k+n-1}}
if y>1&d(x,y-1)!1{h=1:if r=1{y-:d.x.y=1:i+:s.i.0=x:s.i.1=y:g=1:boxf x*k,y*k,x*k+n-1,(y+1)*k+n-1}}
if x<sx&d(x+1,y)!1{h=1:if r=2{x+:d.x.y=1:i+:s.i.0=x:s.i.1=y:g=1:boxf (x-1)*k,y*k,x*k+n-1,y*k+n-1}}
if y<sy&d(x,y+1)!1{h=1:if r=3{y+:d.x.y=1:i+:s.i.0=x:s.i.1=y:g=1:boxf x*k,(y-1)*k,x*k+n-1,y*k+n-1}}
if g=0&h:continue
if g=0&h=0:i-:if i<0:pos 12 ,scy-12-21:objsize 88,21:button "ok",*e:stop
if g&h:c+:if c=10:c=0:await 1
loop
m,n,sx,syの初期値を変えて自分好みの迷路を生成してみてください。
Copyright(C)Begriff
2007-2009.