先の穴掘り法迷路に続いて、棒倒し法の迷路プログラムも作って、IchigoJam SとRの速度を比較してみました。
動画はこちら。
【IchigoJam】棒倒し法迷路の速度比較
IchigoJam Sで2秒ちょっと、Rだと0.4秒くらいで迷路が作れます。
プログラム
棒倒し法の迷路の作り方は以下のとおりです。
- 迷路の外枠を描き、その枠内に1つおきに棒を立てる。
- 乱数で上下左右を決めて、それぞれの棒をその方向へ倒して壁にする。ただし既に壁になっている所へは倒さない。
- 1段目の棒は上下左右へ倒すが、2段目以降は上は無しで、下左右の3方向に倒す。(孤立した道や、複数の正解ルートを作らないように)
10 '*MAZE POLE 20 CLV:CLS:SRND TICK():CLT 30 LET [0],-1,0,1,0,0,1,0,-1 40 ?CHR$(1):COPY #901,#900,30 50 FOR J=1 TO 20 STEP 2 60 LC 0,J:?CHR$(1):LC 30,J:?CHR$(1) 70 FOR I=0 TO 15:?CHR$(1,0);:NEXT:?CHR$(1) 80 NEXT 90 LC 0,21:?CHR$(1):LC 30,21:?CHR$(1) 100 ?CHR$(1):COPY #BC1,#BC0,30 110 Y=2 120 FOR X=2 TO 28 STEP 2 130 D=RND(4):U=X+[D*2]:V=Y+[D*2+1]:IF SCR(U,V) CONT 140 LC U,V:?CHR$(1) 150 NEXT 160 FOR Y=4 TO 20 STEP 2 170 FOR X=2 TO 28 STEP 2 180 D=RND(3):U=X+[D*2]:V=Y+[D*2+1]:IF SCR(U,V) CONT 190 LC U,V:?CHR$(1) 200 NEXT 210 NEXT 220 WAIT 180 230 RUN
棒倒し法はプログラムが短くて動作も速いのですが、このプログラムの作り方では、正解の道が上側・右側に偏る傾向があります。
時々作る方向(棒を倒す順番)を変えるといいかもしれません。