SHIROのIchigoJam日記

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

Fizz Buzzゲーム

古典的なパーティーゲームFizz Buzz」。

  • 1から順番に、1人ずつ数字を言う
  • ただし3の倍数の時は「Fizz」と言う
  • 5の倍数の時は「Buzz」と言う
  • 3と5の公倍数の時は「Fizz Buzz」と言う
  • 詰まったり間違えたりしたら負け

というルールです。
Fizz Buzzのプログラムを組ませて、プログラミング経験の有無をテストする」というのは最近知りました。
子どもたちのプログラミング課題としても面白いと思います。

表示プログラム

基本的な表示プログラムです。画面に数字・「FIZZ」「BUZZ」「FIZZBUZZ」を表示します。
f:id:shiro0922:20200802105052p:plain

10 '*FIZZ BUZZ
20 FOR I=1 TO 99
30 IF I%3=0 ?"FIZZ";
40 IF I%5=0 ?"BUZZ";
50 IF I%3>0 AND I%5>0 ?I;
60 ?" ";
70 NEXT

ゲーム

ただ画面に表示するだけでは面白くないので、ゲームにしてみました。

  • 3の倍数の時は、キーボードの「3」のキーを押す
  • 5の倍数の時は、キーボードの「5」のキーを押す
  • 3と5の公倍数の時は、「3」→「5」の順でキーを押す
  • 1秒以内に押さないとゲームオーバーです

f:id:shiro0922:20200802105252p:plain

10 '*FIZZ BUZZ GAME
20 CLV:CLS
30 FOR I=1 TO 99
40 CLT
50 IF I%3=0 GSB @3
60 IF I%5=0 GSB @5
70 IF I%3>0 AND I%5>0 ?I;:WAIT 60
80 ?" ";
90 NEXT
100 IF I=105 ?"*MISS":BEEP 30,30
110 END
120 @3
130 IF TICK()>60 I=105:RTN
140 IF INKEY()!=ASC("3") GOTO @3
150 ?"FIZZ";:BEEP
160 RTN
170 @5
180 IF TICK()>60 I=105:RTN
190 IF INKEY()!=ASC("5") GOTO @5
200 ?"BUZZ";:BEEP
210 RTN

IchigoJam webのプログラムはこちら。

以前作った拡張基板「BingoJam」でも遊べます(^_^)

プログラムは、以下の2行を追加するだけです。

25 OUT 0:OUT 8,0
35 OUT I/10*16+I%10

1秒の時間制限がハードで、99までなかなか辿り着けません…(^_^;)
倍数の性質が体感的にわかるゲームだと思います。