The MAZE mini
「壁延ばし法で最大15x15」という線を死守しつつ、ノーマルPB-100の544ステップに収めたバージョンです。
妥協した点は
・壁延ばしの起点を「端から順」にしたので、若干迷路に「癖」がある。
・壁延ばしの際の上下左右スキャンを、2方向で打ち切りにした。(壁が延々と伸びるのを防ぐため)半面、時々壁のない「広場」が生じることを許容した。
・迷路サイズ入力の際、サイズの上限や奇数チェックを省略した。
・3D表示の際、表示範囲を一マス分に縮小した。
・ゴールの設定を省略した。(従って迷路にゴールはありません)
[P0]
1 VAC:INPUT L:GOSUB #3:E=2:F=2
2 $=")]([\SQ\CR":X=E+H:Y=F-G:GOSUB #4:B$=MID(Z+1,1)
3 X=E-H:Y=F+G:GOSUB #4:D$=MID(Z+3,1)
4 X=E+G:Y=F+H:GOSUB #4:C$=MID(Z+5,1):PRINT:PRINT B$;C$;D$;
7 $=KEY:IF $="" THEN 7
8 IF $="5";IF C$="\CR";E=X:F=Y
9 IF $="1";K=G:G=H:H=-K
10 IF $="3";K=G:G=-H:H=K
11 GOTO 2
[P3]
1 Z=1:FOR Y=2 TO L-1:FOR X=2 TO L-1:GOSUB #5:NEXT X:NEXT Y
2 FOR I=1 TO L STEP 2:FOR J=1 TO L STEP 2:E=J:F=I
3 X=E:Y=F:GOSUB #4:IF Z=1 THEN 9
4 A=90*INT(RAN#*4:FOR A=A TO A+90 STEP 90:G=COS A:H=SIN A
5 X=E+G:Y=F+H:GOSUB #4:IF Z=0 THEN 8
6 X=X+G:Y=Y+H:GOSUB #4:IF Z=0 THEN 8
7 E=X:F=Y:Z=0:GOSUB #5:X=E-G:Y=F-H:GOSUB #5:GOTO 4
8 NEXT A
9 NEXT J:NEXT I:RETURN
[P4]
1 GOSUB #7:Z=INT(M/N)-2*INT(M/2/N:RETURN
[P5]
1 GOSUB #7:O(Y/2)=N*(Z+INT(M/N/2)*2+M/N-INT(M/N)):RETURN
[P7]
1 N=2^(X+34*FRAC(Y/2):M=O(Y/2):RETURN
実機形式
お絵描きAI作
「ダンジョンからの脱出」