古典的な「さめがめ」風ゲームのバージョン2です。
(※バージョン1はこちら)
「駒設定プログラム」と「メインプログラム」の2分割にして、駒を入れ替えられるようにしました。
短縮形GSB/RTNを使っているので、ファームウェア1.1.0b2以降でないと動きません。
●駒設定プログラムをスロット0、メインプログラムをスロット1にSAVEして、LRUN0で実行してください。スロット番号が連続していれば、違う番号でも構いません。なお2回目以降のプレイでは、メインプログラムを直接RUNして構いません。
●起動すると、16×16=256個の駒が表示されます。最初のステージ0は駒が3種類です。
●反転しているカーソルをカーソルキーで移動して、同じ駒が縦・横に2個以上つながっている所で、スペースキーを押してください。その駒が消えて、駒が下へ詰まります。縦1列全ての駒が消えた場合は、右側の列が左へ詰まります。
●(消した駒数-2)の2乗がスコアに加算されます。駒2個だと消しても0点、駒数が増えると点数が上昇します。
●残り駒数が駒種類数×2以下(最初は6個以下)になると、そのステージはクリアです。次のステージでは駒が1種類増えます。ステージ6(駒9種類)をクリアすると、駒は3種類に戻ります。
●消せる駒が無くなると、自動的にゲームオーバーになります。
●駒設定プログラムを書き換え/差し替えすると、駒のキャラをカスタマイズできます。駒1〜9の9種類を設定してください。通常の数字版、内部キャラ版、オリジナルPCG版の3種類のサンプルをUPします。
※9/2 メインプログラムのバグ修正、PCGのパターン変更
【スロット0】駒設定プログラム(通常の数字版)
1 '*1Game V2 Koma* (Number 1-9) 2 CLP 3 ' 4 'Koma Code 5 LET [1],49,50,51,52,53,54,55,56,57 6 ' 7 'Normal Koma(#E1-#E9) 8 FOR C=1 TO 9:FOR B=0 TO 7 9 POKE (#E0+C)*8+B,PEEK([C]*8+B) 10 NEXT:NEXT 11 ' 12 'Reverse Koma(#F1-#F9) 13 FOR C=1 TO 9:FOR B=0 TO 7 14 POKE (#F0+C)*8+B,PEEK((#E0+C)*8+B)^#FF 15 NEXT:NEXT 16 ' 17 LRUN FILE()+1
【スロット1】メインプログラム
1 '1Game V2 2 CLV:LET[91],-1,0,1,0,0,-1,0,1,0,0:J=15 3 CLS:L=256:W=J:M=S%7+3:FORY=0TOJ:FORX=0TOJ:?CHR$(#E1+RND(M));:NEXT:?:NEXT:GSB9:GSB10 4 K=INKEY()*2-60:IFABS(K)>4GOTO4 5 IFK=4GSB13:IFL<M*2BEEP9,30:WAIT60:S=S+1:GOTO3 6 GSB11:X=P+[K+95]:Y=Q+[K+96]:IFSCR(X,Y)P=X:Q=Y 7 GSB11:IF!GGOTO4 8 LC0,19:END 9 LC0,18:?"Stage ";S;" Score ";T:RTN 10 P=0:Q=J 11 X=P:Y=Q 12 I=SCR(X,Y):I=I+)((I<#F0)-(I>#EF))(*16:LCX,Y:?CHR$(I):RTN 13 U=P:V=Q:N=SCR(U,V)-16: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:GSB9: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 GSB10:RTN 23 FORD=91TO97STEP2:X=U+[D]:Y=V+[D+1]:IFSCR(X,Y)=NC=C+1:[C]=X+Y*16:IFHGSB12 24 NEXT:RTN
【スロット0】駒設定プログラム(内蔵キャラ版)
1 '*1Game V2 Koma* (Internal Chr.) 2 CLP 3 ' 4 'Koma Code 5 LET [1],255,232,238,228,229,230,231,235,250 6 ' 7 'Normal Koma(#E1-#E9) 8 FOR C=1 TO 9:FOR B=0 TO 7 9 POKE (#E0+C)*8+B,PEEK([C]*8+B) 10 NEXT:NEXT 11 ' 12 'Reverse Koma(#F1-#F9) 13 FOR C=1 TO 9:FOR B=0 TO 7 14 POKE (#F0+C)*8+B,PEEK((#E0+C)*8+B)^#FF 15 NEXT:NEXT 16 ' 17 LRUN FILE()+1
【スロット0】駒設定プログラム(PCG版)
1 '*1Game V2 Koma* (PCG) 2 CLP 3 ' 4 'Koma PCG Pattern 5 LET [ 8],#04,#3E,#2F,#56,#6A,#D6,#AC,#F0 6 LET [16],#38,#7C,#FE,#FE,#FE,#7C,#38,#00 7 LET [24],#38,#44,#82,#82,#82,#44,#38,#00 8 LET [32],#38,#44,#92,#BA,#92,#44,#38,#00 9 LET [40],#38,#74,#F2,#F2,#F2,#74,#38,#00 10 LET [48],#38,#44,#82,#FE,#82,#44,#38,#00 11 LET [56],#38,#44,#A2,#92,#8A,#44,#38,#00 12 LET [64],#38,#44,#8A,#94,#A2,#44,#38,#00 13 LET [72],#38,#44,#82,#82,#FE,#7C,#38,#00 14 ' 15 'Normal Koma(#E1-#E9) 16 FOR C=1 TO 9:FOR B=0 TO 7 17 POKE (#E0+C)*8+B,[C*8+B] 18 NEXT:NEXT 19 ' 20 'Reverse Koma(#F1-#F9) 21 FOR C=1 TO 9:FOR B=0 TO 7 22 POKE (#F0+C)*8+B,PEEK((#E0+C)*8+B)^#FF 23 NEXT:NEXT 24 ' 25 LRUN FILE()+1