ゲームを作りたい人のための ソースコード集

私がその日作った短めのソースを簡単な解説とともに載せていきます
ゲーム制作初心者にとって参考になるかもしれないソースが多いです


<< 波データ | main | 通路生成(一本道) >>



穴掘り法

「穴掘り法」というアルゴリズムを用いて迷路を作成するプログラムです

 


randomize
mc=17:mr=17
csz=24
dim mapdt,mc,mr
dim dx,4:dx=-1,0,1,0
dim dy,4:dy=0,-1,0,1
stx=1:sty=1:max=(mc/2)*(mr/2)
dim stack,4,max
id=0
i=stx:j=sty
;穴掘り法
mapdt(i,j)=1
repeat
    if stack(3,id)=0{
        r=rnd(4)
    }else{
        if stack(3,id)>4{
            stack(3,id)=0
            id--
            if id<=0:break
            i=stack(0,id):j=stack(1,id)
        }
        stack(2,id)++:if stack(2,id)>=4{stack(2,id)=0}
        r=stack(2,id)
    }
    ti=i+dx(r)*2
    tj=j+dy(r)*2
    flg=0
    stack(3,id)++
    if 0<=ti&ti<mc&0<=tj&tj<mr{
        if mapdt(ti,tj)=0{
            stack(0,id)=i,j,r
            mapdt(i+dx(r),j+dy(r))=1
            mapdt(ti,tj)=1
            i=ti:j=tj:id++
        }
    }
    await 1
loop
;描写
pget 3200:boxf:color
repeat mr:j=cnt
    repeat mc:i=cnt
        pos i*csz,j*csz
        if mapdt(i,j)=0{
            mes"■"
        }
    loop
loop

0
    posted by higashijugem 22:46comments(0)|-|


    この記事に対するコメント