http://www.SMITH-PROJECT.jp/
>ただし、そのままの内容で転載の際は事前連絡をください
って書いてたので連絡をしたら迅速な返事をいただき
転載を許可していただきました。感謝!
#define MAP_WIDTH 20 ;マップの横幅 #define MAP_HEIGHT 20 ;マップの縦幅 #define SIZE 32 ;1マスのサイズ #define MAIN_PLANE 0 #define COL_MODE 0 //変更 1だと色つかないw ;///// 初期設定いろいろ ///// scrX=MAP_WIDTH*SIZE:scrY=MAP_HEIGHT*SIZE if (ginfo_dispx<scrX)||(ginfo_dispy<scrY):dialog "MAPが大きすぎるかSIZEが大きすぎます":end //変更 ginfo_dispx ginfo_dispy screen MAIN_PLANE,scrX,scrY,COL_MODE,(ginfo_dispx-scrX)/2,(ginfo_dispy-scrY)/2:cls 4 //変更 ginfo_dispx ginfo_dispy dim map,MAP_WIDTH,MAP_HEIGHT:sdim map_chip,10,10 map_chip.0="","■","★","●":font "MS ゴシック",SIZE randomize:map_w=MAP_WIDTH-1:map_h=MAP_HEIGHT-1: mx=map_w-1:my=map_h-1 ;///// MAPの端をすべて壁に ///// repeat MAP_WIDTH:map.cnt.0=1:map.cnt.map_h=1:loop repeat MAP_HEIGHT:map.0.cnt=1:map.map_w.cnt=1:loop ;///// それっぽく迷路を作る ///// アルゴリズム全然理解できてないw y.tack repeat MAP_WIDTH/2-1 x=cnt*2+1 repeat MAP_HEIGHT/2-1 y=cnt*2+1:r=rnd(3):r++:map.x.y=r:r=rnd(3):r++ // 変更 rndを命令から関数へ if r==1{tmpx=x:tmpy=y-1:pchk=map.tmpx.tmpy if pchk:continue:else:map.tmpx.tmpy=r } if r==2{tmpx=x+1:tmpy=y:pchk=map.tmpx.tmpy if pchk:continue:else:map.tmpx.tmpy=r } if r==3{tmpx=x:tmpy=y+1:pchk=map.tmpx.tmpy if pchk:continue:else:map.tmpx.tmpy=r } loop loop ;///// 迷路描画 ///// gsel MAIN_PLANE:color 32,32,128 repeat MAP_WIDTH x=cnt repeat MAP_HEIGHT y=cnt:r=map.x.y:pos x*SIZE,y*SIZE:mes map_chip.r loop loop color 255,255,255:pos mx*SIZE,my*SIZE:mes "◆" ;smith氏コメント *MAIN await 50:stick ky,15:if ky==0:goto *MAIN ;Key入力 xv=((ky>>2)&1)-(ky&1):yv=((ky>>3)&1)-((ky>>1)&1) ;smith氏コメント //変更 計算順序が違うので括弧で括りました tmpx=mx+xv:tmpy=my+yv:pchk=map.tmpx.tmpy ;smith氏コメント ;smith氏コメント if pchk==0{ o_mx=mx:o_my=my:mx+=xv:my+=yv:redraw 2 color 255,255,255:pos mx*SIZE,my*SIZE:mes "◆" tmpx=o_mx*SIZE:tmpy=o_my*SIZE color 0 , 0, 0:boxf tmpx,tmpy,tmpx+SIZE,tmpy+SIZE:redraw 1 } goto *MAIN ;////////// プログラム解説 ////////// ;smith氏コメント ;///////////////////////////////////////// ;Programed by smith 2001.03 (smith@big.or.jp) ;このプログラムソースは自由にご使用頂いて構いません。 ;ただし、そのままの内容で転載の際は事前連絡をください。 ;---------- 迷路生成アルゴリズム参考 ---------- ;「鷹月ぐみな氏CreationCollege」 ;http://cgi.campus.ne.jp/~ishigami/CREATION/index.html // LINK切れっぽいです ;smith氏コメントはあんまり残ってるとよくない気がしましたので ;半分くらい割愛しました。気になる人はsmith氏サイトを要check!