MAZER by こあ/co.a

再生

 ランダムで生成される迷路を歩いて、ゴールを目指すシンプルな迷路脱出ゲームだ。なんと1画面プログラムだぞ。
 プログラムを実行するとスグにゲーム開始。左上に表示されたプレイヤーを十字キーで操作して、右下のゴールを目指そう。
 ゴールに辿り着いたらゲームクリア。プログラム終了となる。

私が作りました

こあ / co.a

今回は1画面プログラムとして迷路ゲームをお送りします。
コード圧縮のためマルチステートメントと論理式を濫用しました。今時の言語で書くとタコ殴りにされること間違いなしのコードです。
なお、迷路生成アルゴリズムは「棒倒し法」の簡易版です。壁の重複判定が不要な代わりに、生成される迷路は単調です。


 CHECK POiNT 

神崎
この短いプログラムで、ちゃんと迷路ができているのがスゴイね。

ワンパク
だがよォ、ゴールに向かってまっすぐ進めるような迷路が多くて、イマイチ面白くないぜ。ファック!

インテリ
作者コメントにもあるけど、「棒倒し法」アルゴリズムの弱点だろうね。これは見下ろし型の迷路だから特にそう感じるけど、たとえば壁より前が見えない3Dダンジョンだったとしたら、どうかな?

ワンパク
フムム……それならもっと楽しめそうな気はするな。

博士
ウム、迷路生成のためのアルゴリズムは色々あるからの。1画面プログラムのようにサイズにこだわらないのなら、時と場合にあったアルゴリズムを選択するのがポイントになるじゃろうな。

プログラムリスト

  1. CLS:FOR I=0TO 190:X=(I%16)*2
  2. Y=(I-X/2)/8:P=I%176<15:L=X<3
  3. R=(RND(2+(Y<3)+L)-L)*(X%30>0)
  4. P=P+R*(P<1):?”В”:LOCATE X,Y
  5. ?”В”:LOCATE X+P%2,Y-(P-1)%2
  6. NEXT:X=1:Y=1:FOR I=0TO 2
  7. B=BUTTON():W=1-(B%4+1)%3:?”г”
  8. V=1-((B-B%4)/4%4+1)%3:VSYNC 6
  9. LOCATE X,Y:IF B%16<1GOTO @N
  10. IF CHKCHR(X+V,Y+W)GOTO @N
  11. ?CHR$(0):X=X+V:Y=Y+W:BEEP 9
  12. @N
  13. LOCATE X,Y:I=X/57+Y/42:NEXT