※この記事は「IchigoJam Advent Calendar 2019」に参加しています。
以前作った対戦ビンゴゲームのリメイクです。画面表示をシンプルにして、IchigoKamuyなどのシリアルモニタ画面でも遊べるようにしました。もちろん通常の液晶画面でも遊べます。
プログラムも圧縮して、何とか1ファイルに収めました。
(追記)IchigoKamuyとIJUtilitiesのシリアルモニタで遊んでみました。
遊び方
- CPUと対戦するビンゴゲームです。起動すると、5×5の自分のマス目が表示されます。CPU側のマス目は、対戦中は見られません。
- 自分のマス目の数字を1手ずつ入力して、「--」にして消していきます。逆にCPUが選んだ数字は、自分のマス目では「●●」になります。
- 「●●」が縦・横・斜めのどこか1列で4個揃ったら「リーチ」です。その場合は、相手はもう1回数字を消さないといけません。
- 「●●」が縦・横・斜めのどこか1列で5個揃ったら「ビンゴ」で、そのプレイヤーの勝ちです。CPU側のマス目も表示されて終了します。
- 消せない数字を入力すると再入力になります。また、リーチやビンゴは自動で判定されます。
容量が足りないのでCPU思考ルーチンはシンプルですが、かなり強いです。本気でかかってください。
(作者の私も、必死にプレイして勝率は五分五分です)
プログラム
1 CLV:CLS:FORG=0TO25STEP25 2 FORI=0TO24:[G+I]=I+1:NEXT 3 FORI=1TO200:A=RND(25):B=RND(25):C=[G+A]:[G+A]=[G+B]:[G+B]=C 4 NEXT:NEXT:G=0:GSB16 5 G=0:INPUT"N=?",N:GSB29:IF[A]<1CONT 6 [A]=0:GSB16 7 G=25:GSB29:[G+A]=-1:GSB19:IFQEND 8 IFRGOTO5 9 G=25:T=1:B=-1:W=20:FORA=0TO24:U=A%5:V=A/5 10 F=0:IF[G+A]>0GSB19:IFF<WW=F:B=A 11 NEXT:N=[G+B]:[G+B]=0:?"CPU=";N:T=0 12 G=0:GSB29:[A]=-1:GSB16 13 GSB19:IFQEND 14 IFRGOTO9 15 GOTO5 16 ?:I=G:FORY=0TO4:FORX=0TO4 17 IF![I]?"--";ELSEIF[I]=-1?CHR$(233,233);ELSE?DEC$([I],2); 18 ?" ";:I=I+1:NEXT:?:NEXT:?:RTN 19 R=0:Q=0:E=1:S=0:Y=V:FORX=0TO4:GSB33:NEXT:GSB24 20 E=1:S=0:X=U:FORY=0TO4:GSB33:NEXT:GSB24 21 IFU=VGSB31:GSB24 22 IFU+V=4GSB32:GSB24 23 RTN 24 F=F+S*E:IFS<4||Q||TRTN 25 BEEP:IF!G?"YOU ";ELSE?"CPU "; 26 IFS=5?"WIN!":?"(CPU)";:G=25:GSB16:Q=1:RTN 27 IF!R?"REACH!":R=1:WAIT60 28 RTN 29 FORI=0TO24:D=[G+I]:IFD=NU=I%5:V=I/5 30 NEXT:A=U+V*5:RTN 31 E=1:S=0:FORX=0TO4:Y=X:GSB33:NEXT:RTN 32 E=1:S=0:FORY=0TO4:X=4-Y:GSB33:NEXT:RTN 33 D=[G+X+Y*5]:IF!DE=0 34 S=S+(D=-1):RTN
リーチが複数重なった時に、おかしな表示になることがあります。が、もうコード容量が1Kバイト目一杯なので、これ以上直せません(^_^;)
リーチやビンゴのチェックルーチンを、CPUの思考でも共用しています。おかげでプログラムが1ファイルに収まりました。
web版
IchigoJam web版はこちら。
実行速度が遅いので、起動直後やCPUの手番で10秒くらい待たされます。