SHIROのIchigoJam日記

IchigoJamの電子工作とプログラミングをメインに

いちがめ

※8/28 致命的なバグを修正しました。
※9/3 一部ルールを変更、バグ修正、一部の処理を変更。

古典的な「さめがめ」風ゲームです。
何とかスロット1個に収めました。
短縮形GSB/RTNを使っているので、ファームウェア1.1.0b1以降でないと動きません。

  • 起動すると、16×16=256個の数字ブロックが表示されます。最初のステージ0は数字が1〜3の3種類です。
  • 反転している数字カーソルをカーソルキーで移動して、同じ数字が縦・横に2個以上つながっている所で、スペースキーを押してください。その数字ブロックが消えて、ブロックが下へ詰まります。縦1列全てのブロックが消えた場合は、右側の列が左へ詰まります。
  • (消したブロック数-2)の2乗がスコアに加算されます。(つまりブロック2個だと消しても0点。ブロック数が増えると点数が上昇)
  • 残りブロック数がブロック種類数×2以下(最初は6)になるとステージクリアです。次のステージへ行くと、数字ブロックが1種類増えます。ステージ6(ブロック9種類)をクリアすると、ブロック3種類に戻ります。
  • 消せる駒が無くなると、自動的にゲームオーバーになります。

1 CLV:LET[91],-1,0,1,0,0,-1,0,1:FORB=0TO79:POKE#780+B,PEEK(#180+B)^#FF:NEXT:J=15
2 CLS:L=256:W=J:M=S%7+3:FORY=0TOJ:FORX=0TOJ:?RND(M)+1;:NEXT:?:NEXT:GSB8:GSB9
3 K=INKEY()*2-60:IFABS(K)>4GOTO3
4 IFK=4GSB13:IFLSCR(X,Y)ELSEFORZ=YTO0STEP-1:POKE#900+X+Z*32,SCR(X,Z-1):NEXT:Y=Y+1
17 NEXT:NEXT:IF!LRTN
18 FORX=WTO0STEP-1:IFSCR(X,J)ELSEFORY=JTO0STEP-1:LCX,Y:FORZ=XTOW:?CHR$(SCR(Z+1,Y));:NEXT:NEXT:W=W-1
19 NEXT:C=0:H=0:FORU=0TOW:FORV=JTO0STEP-1:N=SCR(U,V):IF!NGOTO21
20 GSB23:IFCU=W:V=0
21 NEXT:NEXT:IF!CG=1
22 GSB9:RTN
23 FORD=91TO97STEP2:X=U+[D]:Y=V+[D+1]:IFSCR(X,Y)=NC=C+1:[C]=X+Y*16:IFHGSB11
24 NEXT:RTN