SHIROのIchigoJam日記

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

いちがめ for 1.3

IchigoJam BASICの新バージョン「1.3.0」が公開されました。
変更点については、福野さんのブログ記事にまとめられています。
fukuno.jig.jp

  • 全体の動作が70%高速化。
  • sakura.ioに対応したネットへのデータ入出力命令が追加。
  • LOCATE命令の第3パラメータでカーソルスイッチが付き、「LOCATE x,y,1」で点滅カーソルを表示。

さっそく新機能のカーソルスイッチを使い、以前作ったコマ消去ゲーム「いちがめ」を、IchigoJam BASIC 1.3用にリメイクしました。
全体に高速・軽量になったので、快適に遊べます(^_^)
f:id:shiro0922:20190128215500p:plain

遊び方

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

プログラム

1 '*Ichigame for 1.3
2 CLV:LET[91],-1,0,1,0,0,-1,0,1:J=15
3 CLS:L=256:W=J:M=S%7+3:P=0:Q=J
4 FORY=0TOJ:FORX=0TOJ:?RND(M)+1;:NEXT:?:NEXT:GSB10
5 LCP,Q,1:K=INKEY()*2-60:IFABS(K)>4GOTO5
6 IFK=4GSB11:IFL<=M*2BEEP10,30:WAIT99:S=S+1:GOTO3
7 X=P+[K+95]:Y=Q+[K+96]:IFSCR(X,Y)P=X:Q=Y
8 IF!GGOTO5
9 BEEP30,30:LC0,19:END
10 LC0,18:?"Stage:";S;" Score:";T;" Last:";L;" ":RTN
11 U=P:V=Q:N=SCR(U,V):C=0:[C]=U+V*16:H=1:GSB26:IF!CRTN
12 BEEP:B=0
13 B=B+1:U=[B]&15:V=[B]/16:GSB26:IFB<CGOTO13
14 I=C-2:T=T+I*I:L=L-C:GSB10
15 FORB=0TOC:X=[B]&15:FORY=JTO0STEP-1
16 IFSCR(X,Y)=42FORZ=YTO0STEP-1:POKE#900+X+Z*32,SCR(X,Z-1):NEXT:Y=Y+1
17 NEXT:NEXT:IF!LRTN
18 FORX=WTO0STEP-1
19 IFSCR(X,J)ELSEFORY=JTO0STEP-1:LCX,Y:FORZ=XTOW:?CHR$(SCR(Z+1,Y));:NEXT:NEXT:W=W-1
20 NEXT:C=0:H=0
21 FORU=0TOW:FORV=JTO0STEP-1
22 N=SCR(U,V):IF!NGOTO24
23 GSB26:IFCU=W:V=0
24 NEXT:NEXT:IF!CG=1
25 P=0:Q=15:RTN
26 FORD=91TO97STEP2:X=U+[D]:Y=V+[D+1]
27 IFSCR(X,Y)=NC=C+1:[C]=X+Y*16:IFHLCX,Y:?"*"
28 NEXT:RTN

web版はこちら。体感としては、これが前バージョンのIchigoJam実機での速度の感じです。