SHIROのIchigoJam日記

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

イチリス64

Ichigo64(IchigoJam+IchigoDot)環境で遊べる、落ち物パズルゲームです。
プログラムの都合によりLEDマトリックスの右から左へ落ちるので、マトリックスを90度回転させてプレイしてください。

  • 実行するとタイトル画面の後、左上からブロックが落ちてきます。ボタンを押すと右へブロックが移動するので、位置を決めて落としてください。ボタンを押し続けると、ブロックはその段に留まったまま右へ移動し続けます。
  • 横1列(8個)がそろうと、その列は消えてポイントとなり、上のブロックが1段下へ下がります。ブロックはだんだん速く落ちてくるので、集中してそろえてください。
  • ブロックが一番上まで積み上がってしまうとゲームオーバーです。消した列数(ポイント)がドット数で表示されます。64ポイントまでしか表示できませんが、そこまでスコアを伸ばすのはかなり困難でしょう。

※9/24 Ver1.1

  • ゲームがあまりに難しいので、1個だけの“救済ブロック”が出てくる確率を増やしました。
  • ブロックの重なりチェックを修正して、動作を高速化。

※9/25 Ver1.2

  • 乱数を初期化して、同じパターンでブロックが出てこないように修正。

※9/29 Ver1.3

  • ブロックの登場確率を変更。
  • ゲームループ処理を変更して、ブロックを動かしやすくしました。

※9/29 Ver1.4

  • ブロック移動のバグ修正。
1 '*Ichiris64*
2 IFBTN()GOTO2
3 WAIT60:UART1:CLS:?
4 CLV:?"MATLED SHOW 926445F52242F364":PLAY"G8E8C8D8":WAIT120:GSB25:W=60:SRNDANA(2)+TICK()
5 L=RND(15)+1:IFL<4L=L*4
6 IFL=8||L=10L=L/2
7 [11]=L&3:[10]=L/4:W=W-(W>1):X=0:Y=9:GSB21:IFRGOTO13
8 IFBTN()GSB18:GOTO8
9 G=G+1:IFG<WELSEG=0:GSB21:IF!RY=Y-1:GSB25 ELSEGOTO11
10 GOTO8
11 BEEP40,5:GSB29:FORZ=Y-1TOY:IF[Z]=#FFGSB24:Z=Z-1
12 NEXT:GOTO5
13 BEEP30,30:GSB29:WAIT99:IFS>64S=64
14 FORY=0TO7:[Y]=0:NEXT:IF!SGOTO16
15 FORN=0TOS-1:Y=N/8:[Y]=[Y]+(1<<(N%8)):NEXT
16 GSB25
17 IF!BTN()GOTO17 ELSEGOTO4
18 U=X+1:V=Y:D=([11]<<1)+([11]>127):E=([10]<<1)+([10]>127):GSB22:IFRRTN
19 IF(U+(L&10>0))>7U=0:D=L&3:E=L/4:GSB22:IFRRTN
20 X=U:[11]=D:[10]=E:GSB25:RTN
21 V=Y-1:D=[11]:E=[10]:IFY<2R=1:RTN
22 R=0:IF[V]&D||[V-1]&ER=1
23 RTN
24 [Z]=0:GSB25:S=S+1:BEEP10,10:WAIT30:FORV=ZTO7:[V]=[V+1]:NEXT:[7]=0:GSB25:RTN
25 ?"MATLED SHOW ";:FORB=0TO7:C=[B]:IFB=YC=C|[11]
26 IFB=Y-1C=C|[10]
27 IFC<16?0;
28 ?HEX$(C);:NEXT:?:RTN
29 [Y-1]=[Y-1]|[10]:[Y]=[Y]|[11]:[10]=0:[11]=0:RTN