#author("2018-06-13T18:33:30+09:00","","")
**ver2.61_MAP_DUNGEON [#z1f3e837]
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!