マイクロビットを使ってみる 〜もぐらたたきゲームをつくる

スポンサーリンク
電子工作の作例

今回は、「もぐらたたきゲーム」をつくります。


ゲームの内容は以下のとおりです。

  • Aボタンを押すと、ゲームがスタートします。
  • 1〜5秒たつと、画面に一瞬だけ「0」〜「2」のいずれかの数字が表示されます。
  • 数字が表示されている間に、同じ番号の端子にタッチすると、1点プラスされます。
  • これを10回繰り返します。
  • ゲームが終わったら、点数(タッチできた回数)が表示されます。

マイクロビットだけでも遊べますが、段ボールやベニヤ板などで、このようなものをつくれば、ピコピコハンマーなどでたたけるようになり、本物の「もぐらたたきゲーム」のようになります。

プログラムの具体的な仕様は、以下のようになります。

  • 「点数」「モグラ」「ハンマー」という、3つの変数を準備します。「点数」はゲームの点数(タッチできた回数)、「モグラ」は画面に表示される数字(0〜2)、「ハンマー」はタッチされた端子の番号(0〜2)です。
  • 「ボタンAが押されたとき」に、以下の処理を行います。各変数の初期化を行い、画面にゲームスタートの表示を行った後、「ゲームをする」関数を呼び出します。
    1. 変数「点数」の値を「0」にします。
    2. 変数「モグラ」の値を「-1」(あり得ない値)にします。
    3. 変数「ハンマー」の値を「-1」(あり得ない値)にします。
    4. 画面に「3」→「2」→「1」→「格子アイコン」を0.5秒ずつ表示します。
    5. 画面表示を消してから、「ゲームをする」関数を呼び出します。
  • 「ゲームをする」関数では、以下の処理を行います。問題を出題し(10回)、出題が終わったら結果(点数)を表示します。
    1. 1〜5秒のランダムな時間だけ、一時停止します。
    2. 変数「モグラ」の値を「0」〜「2」のランダムな値にします。
    3. 画面に「モグラ」の値を0.2秒だけ表示します。
    4. 0.2秒たったら表示を消し、「モグラ」の値を「-1」(あり得ない値)に戻します。
    5. 上記の 1〜4 の処理を10回くり返します。
    6. 10回終わったら、0.5秒待ってから「格子アイコン」を3回点滅(0.5秒点灯→0.5秒消灯)させた後、画面に変数「点数」の値を表示します。
  • 「ずっと」では、以下の処理を行います。いずれかの端子にタッチされているかどうかを読み取り、タッチされていたら「判定する」関数を呼び出します。
    1. もしも「P0」がタッチされていたら、変数「ハンマー」の値を「0」にして、「判定する」関数を呼び出します。
    2. もしも「P1」がタッチされていたら、変数「ハンマー」の値を「1」にして、「判定する」関数を呼び出します。
    3. もしも「P2」がタッチされていたら、変数「ハンマー」の値を「2」にして、「判定する」関数を呼び出します。
    4. 上記のいずれでもなければ(どの端子にもタッチされていなければ)、変数「ハンマー」の値を「-1」(あり得ない値)に戻します。
  • 「判定する」関数では、以下の処理を行います。
    1. もしも、変数「モグラ」の値と変数「ハンマー」の値が同じなら(正解なら)、変数「点数」の値を1だけ増やし、変数「モグラ」の値を「-1」(あり得ない値)に戻します。さらに「チェックアイコン」を一瞬(0.1秒)だけ表示してから、表示を消します。

できあがったプログラムは以下のとおりです。

「ボタンAが押されたとき」の内容は以下のとおりです。

「ゲームをする」関数の内容は以下のとおりです。

「ずっと」の内容は以下のとおりです。

「判定する」関数の内容は以下のとおりです。

マイクロビットのタッチセンサは感度が悪いので、タッチしても認識されない場合があります。
そのような場合は、指でタッチする代わりに、ワニ口クリップの一方を「GND」端子につないでおき、もう一方を「0」〜「2」番の端子にタッチさせることでも、ゲームをすることができます。

なお、マイクロビットの「3V」端子と「GND」端子をショートさせてしまうと壊れる可能性がありますので、ワニ口クリップであそぶ場合は、あらかじめ「3V」端子をテープなどでふさいでおいてください。

 

なお、私がマイクロビットの使い方を習得するのにあたっては、以下の書籍を参考にさせていただきました。


初心者向けから、比較的高度なものまで、さまざまな情報が記載されているだけでなく、子供向けの作例も多数掲載されていますので、「プログラミング教育」のための題材さがしなどにもおすすめです。