【マイクロビット】簡単なプログラムでいつもの遊びをおもしろくしよう!

今回は、マイクロビットを使ったかくれんぼを紹介します。

マイクロビットの基本的な機能は分かったけれど

  • 次に何を作っていいのか分からない
  • 複雑なゲームを作るのはハードルが高い
  • みんなでワイワイ遊べるものが作りたい

という方向けです。

簡単なプログラムでも
定番の遊びを十分に楽しめるものに
バージョンアップすることができますよ。

初心者さんでも分かりやすいように
しっかりプログラムの解説をしています。

 

スポンサーリンク

マイクロビットを使ったかくれんぼのルール

かくれんぼとマイクロビット

かくれている間、鬼に見つからないように
マイクロビットのボタンをおして音を鳴らし、
音を鳴らした回数を競います。

  1. 鬼を決める。
  2. かくれる時間、子は物かげにかくれる。
  3. 子がかくれる間、鬼は目をふさいで待つ。
  4. 鬼はかくれている子をさがす。
  5. 鬼がさがしている間、
    鬼に見つかる または さがす時間が終わるまで
    子はマイクロビットのボタンをおして音を鳴らす。
  6. さがす時間内に子を全員みつけられたら鬼の勝ち。
  7. 鬼が時間内に全員見つけられなかった場合、
    見つからなかった子の中で音を鳴らした回数が一番多い子が勝ち。

音を鳴らして鬼に見つかるかもしれない
ハラハラ感を楽しめる要素を追加しました。

 

用意するもの

・マイクロビット本体
 人数分必要です。
 

・電池ボックス
 ゲーム中はマイクロビットを持ち歩きます。
 マイクロビット単体で持ち歩く場合は
 電池ボックスが必要です。
 

・スピーカー(micro:bit v1.5のみ)
 音を出すためにスピーカーが必要です。
 最新バージョンのマイクロビット(micro:bit v2)には
 スピーカーが内蔵されているので不要ですが、
 オリジナルバージョン(v1.5)は別途スピーカーが必要です。

\ケーブルがないので邪魔になりません!/

MakeCodeエディターを開く

MakeCodeエディターの画面を開いて
実際にプログラミングしてみましょう。

 

MakeCodeエディターの基本的な使い方は
こちらの記事をご覧ください。

 

一番シンプルなプログラム

シンプルなプログラム

  • Aボタンをおしたとき
    メロディ「ジャンプアップ」を鳴らして、
    メロディを鳴らした「回数」を1増やす。
  • ずっと
    メロディを鳴らした「回数」を表示する。

最低限、これだけの機能があれば遊ぶことができます。
プログラムもとてもシンプルです。

 

しかし、遊んでいるうちに
こまったことが出てくるのではないでしょうか。

どんなこまったことが起こりそうか予想したり
実際に遊んであらい出してみてください。

こまったことの例

  • かくれる時間・さがす時間がいつ終わったのか分からなくなる。
  • 音が鳴り終わる前に何度もボタンをおしてしまう。
  • 鬼に見つかった後や終わった後にこっそりボタンをおしたくなる。

 

もっと遊びやすくしてみよう

こまったことを解決できるよう
一番シンプルなプログラムに
どんな機能を追加したらいいか考えてみましょう。

今回は、こんな機能を追加しました。

  • かくれる時間を測る。
  • さがす時間を測る。
  • 連続してボタンをおせない。
  • 鬼に見つかった後とかくれる時間終了後、
    ボタンをおしても回数は増えない。

 

プログラムの仕様

追加する機能もふまえて、
プログラムにどんなことをさせたいのかまとめました。

ゲーム開始前(状態:0)

  • 「←」を表示して、Aボタンを指す。

かくれる時間(状態:1)

  • Aボタンをおすと、ゲームスタート(全員同時におしてね!)
  • かくれる時間の残り時間を棒グラフで表示する。

さがす時間(状態:2)

  • かくれる時間が終わったら「♪」を表示、
    さがす時間がスタートする。
  • さがす時間の残り時間を棒グラフで表示する。
  • Aボタンをおすと、メロディ「ジャンプアップ」が鳴り、
    メロディを鳴らした「回数」を1増やす。
  • ただし、鳴らしてから3秒たたないと次の音を鳴らせない。

鬼に見つかった時(状態:3)

  • 鬼は見つけた子のマイクロビットのAとBボタンを同時におす。
  • メロディ「パワーダウン」が鳴り、「がいこつ」を表示する。
  • その後、Aボタンをおしても「回数」はカウントされない。

ゲーム終了(状態:3)

  • かくれる時間が終わったら
    メロディ「パワーダウン」が鳴り、
    「すばらしい」顔を表示する。
  • その後、Aボタンをおしても「回数」はカウントされない。
  • Bボタンをおすと、
    メロディを鳴らした「回数」が表示される。

 

完成プログラム

プログラムは下の画像のようになります。

・最初だけ・ずっと

最初だけ・ずっと

・関数「HideTime」

関数「HideTime」

・関数「SeekTime」

関数「SeekTime」

・ボタンAが押されたとき

ボタンAが押されたとき

・ボタンB・ボタンA+Bが押されたとき

ボタンB・ボタンA+Bが押されたと

シンプルなプログラムと比べて、
ずいぶん複雑になりましたね。

 

スポンサーリンク

プログラム解説

プログラムの中の
条件分岐と変数の計算を中心に解説します。

変数「状態」について

かくれんぼの手順のどの段階か
変数「状態」を使って分かるようにします。

  • 状態が0:ゲーム開始前
  • 状態が1:かくれる時間
  • 状態が2:さがす時間
  • 状態が3:鬼に見つかった・ゲーム終了

最初だけ

最初に、変数の初期値を設定します。
音量やかくれる時間・さがす時間は人数や場所で調整してください。

  • 音量:0~255の範囲
  • かくれる時間・さがす時間:ミリ秒単位(1秒=1,000ミリ秒)

ずっと

変数「状態」の値をみて処理を分けています。

状態が0のとき(ゲーム開始前)

  • 「←」を表示する。

状態が1のとき(かくれる時間)

  • 関数「HideTime」を呼び出す。

状態が2のとき(さがす時間)

  • 関数「SeekTime」を呼び出す。

 

関数とは、命令のまとまりのことです。
何度も使う処理があったら、それを関数にすると便利!

 

 

関数「HideTime」

かくれる時間の時の処理です。

かくれる時間の間は残り時間を棒グラフで表示して
かくれる時間が終わったら鬼がさがす時間に移ります。

変数「経過時間」の計算

  • かくれる時間がはじまってから何秒たっているか計算します。
    「稼働時間(ミリ秒)」-「開始時間」

経過時間 < かくれる時間 なら

  • まだかくれる時間なので棒グラフを表示します。
    値:残り時間(かくれる時間 – 経過時間)
    最大値:かくれる時間

でなければ

  • かくれる時間が終わったので、
    「状態」を2(さがす時間)にします。
  • 「開始時間」に「稼働時間(ミリ秒)」を保存して
    さがす時間がはじまった時間を保存しておきます。

 

稼働時間(ミリ秒)ブロック
稼働時間(ミリ)は電源が入ってから経過した
ミリ秒数を取得するブロックです。
※ミリ秒は1,000分の1秒

関数「SeekTime」

さがす時間の時の処理です。

さがす時間の間は残り時間を棒グラフで表示して
さがす時間が終わったらゲーム終了(状態=3)です。

ボタンAが押されたとき

ゲーム開始前かさがす時間かによって処理を分けます。

状態が0のとき(ゲーム開始前)

ゲームを開始して、子がかくれる時間になります。

  • 「状態」を1(かくれる時間)にします。
  • 「開始時間」に「稼働時間(ミリ秒)」を保存して
    かくれる時間がはじまった時間を保存しておきます。

状態が2のとき(さがす時間)

  • 連続して音を鳴らせないよう
    前回ボタンをおしてから3秒たっているか判定します。
    「稼働時間(ミリ秒)」-「ボタン押した時間」で
    前回ボタンをおしてから何秒たったか計算できます。
  • 音をならして、「回数」を1増やします。
  • 「ボタンを押した時間」に「稼働時間(ミリ秒)」を保存して
    ボタンをおした時間を保存しておきます。

ボタンBが押されたとき

  • 「回数」を表示します。

ボタンA+Bが押されたとき

鬼に見つかった時の処理です。

  • 「状態」が2(さがす時間)のとき、
    「状態」を3(ゲーム終了)にします。

 

シミュレーターで確認

プログラムが完成したら
シミュレーターで思った通りに動くかテストしましょう。

テストのときだけ
かくれる時間・さがす時間を短めにしておくと確認しやすいです。

 

実機でテストしてみよう

シミュレーターで確認できたら
マイクロビットに転送して実際に動かしてみましょう。

 

まとめ

以上、マイクロビットを使ったかくれんぼの紹介でした。

完成形のプログラムを最初に見たら「むずかしそう…」と思うかもしれません。

しかし一番シンプルなプログラムに機能を
1つずつ足すのであれば、
できそうな気がするのではないでしょうか。

こうだったら便利だな・面白いなという
機能があったら追加してみてくださいね。

 

 

タイトルとURLをコピーしました