以前に作ったパズルゲーム「LightsOut」
www.ichigojaman.jp
のプログラムを簡略化したバージョンです。
遊び方
- 起動すると、5×5=25個のライトがランダムにON/OFFされて表示されます(ON=●、OFF=○)
- 反転するカーソルをカーソルキーで上下左右に動かして、スペースキーを押すと、そのライトおよび上下左右に隣接するライトが反転(ON→OFF、OFF→ON)します。
- 25個のライト全てをOFFにするとゲームクリアです。ライトの下では手数を表示しています。できるだけ少ない手数でクリアを狙いましょう。
- ギブアップする時はESCキーでプログラムを止めてください。
単純なゲームですがかなり頭を使います。必ず正解があるパターンで出題されますが、私はなかなかクリアできません…
プログラム
10 CLV:VIDEO 3 20 M=5:N=M-1 30 FOR I=1 TO M*M 40 X=RND(M):Y=RND(M):GSB @W 50 NEXT 60 GSB @L:X=0:Y=0 70 @LOOP 80 LC X,Y,1 90 K=INKEY() 100 X=X-(K=28)*(X>0)+(K=29)*(X<N) 110 Y=Y-(K=30)*(Y>0)+(K=31)*(Y<N) 120 IF K=32 BEEP:T=T+1:GSB @W:GSB @L 130 WAIT 6 140 IF L>0 GOTO @LOOP 150 BEEP 10,30:CLK:END 160 @W 170 Z=X+Y*M:[Z]=![Z] 180 IF X>0 [Z-1]=![Z-1] 190 IF X<N [Z+1]=![Z+1] 200 IF Y>0 [Z-M]=![Z-M] 210 IF Y<N [Z+M]=![Z+M] 220 RTN 230 @L 240 CLS:L=0 250 FOR I=0 TO M*M-1 260 ?CHR$(232+[I]); 270 IF I%M=N ? 280 L=L+[I] 290 NEXT 300 ?:?T 310 RTN
20行の「M=5」を変えると、ライトの個数が変わります。
現在は5行5列=25個ですが、「M=6」だと6行6列=36個、「M=7」だと7行7列=49個…と増えて、クリアするのが難しくなります。
配列変数の個数制限があるので、最大は「M=10」の10行10列です。