SHIROのIchigoJam日記

マイコン「IchigoJam」(イチゴジャム)の電子工作とプログラミングをメインに

いちがめ

※8/28 致命的なバグを修正しました。
※9/3 一部ルールを変更、バグ修正、一部の処理を変更。
※ファームウェアVer1.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:IFL<M*2BEEP:WAIT99:S=S+1:GOTO2
5 GSB10:X=P+[K+95]:Y=Q+[K+96]:IFSCR(X,Y)P=X:Q=Y
6 GSB10:IF!GGOTO3
7 LC0,19:END
8 LC0,18:?"Stage:";S;" Score:";T:RTN
9 P=0:Q=J
10 X=P:Y=Q
11 I=SCR(X,Y)-192:IFI<0I=I+384
12 LCX,Y:?CHR$(I):RTN
13 U=P:V=Q:N=SCR(U,V)-192:C=0:[C]=U+V*16:H=1:GSB23:IF!CRTN
14 BEEP:B=0
15 B=B+1:U=[B]&15:V=[B]/16:GSB23:IFB<CGOTO15
16 I=C-1:T=T+I*I:L=L-I-2:GSB8:FORB=0TOC:X=[B]&15:FORY=JTO0STEP-1:IF#F0>SCR(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