SHIROのIchigoJam日記

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

旗上げゲーム

「赤上げて」「白上げて」で有名な旗上げゲームを、IchigoJamのプログラムで作ってみました。
動画はこちら。

www.youtube.com


IchigoJamは白黒しか表示できないので、旗は左側が「白」、右側が「黒」です。(ちょっとわかりづらいかも…)
指示されたら、制限時間(2秒)以内に、左右の矢印キー(←→)を押して、旗を上げ下げしてください。間違えるとゲームオーバーです。
単純なゲームですが、「上げない」「下げない」もあってなかなか難しいです。

サーボモーターでリアルに旗を上げ下げしたり、加速度センサー付きの「旗コントローラー」を持ってプレイしたり、音声ICでしゃべらせたり、工夫次第でいろいろ面白くなりそうです。

プログラム

10 '*HataAge
20 CLV:VIDEO 3:CLS:W=120
30 POKE #780,#FF,#FF,#FF,#FF,#FF,#FF,#FF,#FF
40 POKE #788,#FF,#81,#81,#81,#81,#81,#81,#FF
50 LET [0],"シロ","クロ"
60 LET [10],"サゲテ","アゲナイデ","アゲテ","サゲナイデ"
70 LC 7,9:?CHR$(79,31,28,1,31,28,65);
80 GSB @LD:GSB @RD:WAIT W
90 @LOOP
100 LC 0,0:?S
110 LC 3,5
120 H=RND(2):?STR$([H]);" ";
130 I=RND(2):?STR$([10+I*2+RND(2)]);"   "
140 IF H B=I ELSE A=I
150 CLT:GSB @HMOV
160 IF A=L && B=R BEEP:S=S+1:GOTO @LOOP
170 BEEP 30,30:LC 0,1:END
180 @HMOV
190 K=INKEY()
200 IF K=28 L=!L
210 IF K=29 R=!R
220 IF L GSB @LU ELSE GSB @LD
230 IF R GSB @RU ELSE GSB @RD
240 IF TICK()<W GOTO @HMOV
250 RTN
260 @LD
270 LC 5,8:?CHR$(0,31,0,31,28,28,240,25);:RTN
280 @LU
290 LC 5,8:?CHR$(240,31,26,31,28,28,0,0);:RTN
300 @RD
310 LC 9,8:?CHR$(0,31,28,28,0,31,28,26,241);:RTN
320 @RU
330 LC 9,8:?CHR$(241,31,28,28,25,31,28,0,0);:RTN
  • 20行の「W=120」が制限時間です(現在は2秒)。この値を変えるとゲームの難易度が変わります。
  • 30~40行で、PCGで白旗(文字コード240)・黒旗(文字コード241)を作っています。ここを変えると旗の柄を変更できます。50行の「シロ」「クロ」の文字と共に変えるといいでしょう。