Skip to content

活動

ホット & コールドゲーム

中級 | MakeCode, Python | LED表示, ボタン, 無線 | データ型, 通信

ステップ1: 作る

説明

BBC micro:bit の無線機能を使って、この楽しい 2 人用ゲームを作りましょう。

学ぶこと

このプロジェクトを通じて、ネットワーク、無線による電子機器間の情報送信方法、コンピュータがさまざまなデータ型で情報を保存する仕組み (文字列による単語の保存など) について学ぶことができます。

動作の仕組み

  • これは二人用のゲームです。 1 人が何かものを隠し、探す人が隠したものに近いときは「熱い」、遠ざかっているときは「冷めた」、近づいたときは「あったまった」などと、ヒントを与えます。
  • 通常、このゲームは「熱い」、「冷たい」、「暖かい」などと叫んで行いますが、このバージョンでは 1 つの micro:bit から別の micro:bit に無線で言葉を送り、LED ディスプレイに表示させて行います。
  • 隠す人用と探す人用の 2 つのプログラムを使用します。
  • まず、それぞれのプログラムが無線グループを 47 に設定します。 グループはチャンネルのようなもので、同じグループを使っているmicro:bitはメッセージを受け取ります。 0から255の好きなグループ番号を使用できます。
  • 隠す人は、A ボタンを押して「暖かい」、B ボタンを押して「冷たい」、A ボタンと B ボタンを同時に押して「熱い」というメッセージを送信します。
  • micro:bit は数字やテキストとしてメッセージを送信できます。 このプロジェクトではテキストメッセージを使うので、数字ではなく、文字列を参照する無線ブロックを使うようにしてください。
  • コンピューティングにおいて、文字列とは、文字、数字、記号、スペースを含めることができる、一連の文字を指します。
  • 探す人の micro:bit が無線メッセージを受信すると、LED ディスプレイに受信した文字列が表示されます。 隠す人の micro:bit にも同じ文字列が表示されます。

必要なもの

  • micro:bit 2個
  • MakeCodeエディター
  • バッテリーパック(推奨)

ステップ2:プログラミング

隠す人用のプログラム

1# Imports go at the top
2from microbit import *
3import radio
4radio.config(group=47)
5radio.on()
6
7while True:
8    if button_a.is_pressed() and button_b.is_pressed():
9            radio.send('HOT!')
10            display.scroll('HOT!')
11    elif button_a.is_pressed():
12        radio.send('warmer')
13        display.scroll('warmer')
14    elif button_b.is_pressed():
15        radio.send('colder')
16        display.scroll('colder')
17    sleep(100)

探す人用のプログラム

1# Imports go at the top
2from microbit import *
3import radio
4radio.config(group=47)
5radio.on()
6
7while True:
8    message = radio.receive()
9    if message:
10        display.scroll(message)
11    sleep(100)

ステップ3:改善する

  1. 「熱い」、「冷たい」、「暖かい」の代わりに他の言葉が表示されるようにプログラムを編集してみましょう。 たとえば、学んでいる外国語の「熱い」、「冷たい」、「暖かい」という言葉使うことができます。
  2. プログラムに効果音を追加します。
  3. このゲームでタイマーやステップカウンタープログラムを使うと、隠されたものをどれだけ早く見つけたか確認できます。