4.2.6 じゃんけん
4.2.6.1 概要

ここでは、micro:bitの無線通信を使ってじゃんけんをしましょう。プレイヤーはボタンで手(グー、チョキ、パー)を選択し、デバイス間でデータを交換します。ゲームは3回勝負で、3回すべて引き分けまたは勝ち負け引き分けの場合、4回戦が行われます。
各結果はmicro:bitマトリックスに表示され(Wは勝ち、Lは負け、=は引き分け)、P8ピンのRGBライトで示されます(緑は勝ち、赤は負け、黄は引き分け)。1ラウンドが終了すると、両方のデバイスはすべてのデータとライトをリセットし、次の試合に備えます。
ゲームプレイは、無線インタラクションと複数ラウンドの対戦をシームレスに統合しています。

4.2.6.2 コンポーネント知識

Microbit 無線通信

micro:bitボードは、2.4GHz無線と**低電力Bluetooth (BLE)**という2つの便利な無線通信機能を統合しています。ただし、これらを同時に使用することはできません。
前者はペアリングが不要で、干渉を最小限に抑えるために最大255個の独立したパケットをサポートし、通信範囲は10〜30メートルで、デジタルデータと文字列の高速伝送を可能にします。後者は主にスマートフォン、タブレット、その他のスマートデバイスとのペアリングに使用され、センサーデータアップロードやモバイルアプリのリモートコントロールなどのIoTアプリケーションに利用されます。
これらはmicro:bitの創造的な開発の可能性を広げます。
4.2.6.3 必要な部品
|
|
|
|---|---|---|
micro:bit V2 ボード (自己調達) ×2 |
micro:bit スマートゲームパッド (組み立て済み) ×2 |
単4電池 (自己調達) ×8 |
4.2.6.4 コードフロー

4.2.6.5 テストコード
完全なコード:


簡単な説明:
① 無線を初期化し、グループを「1」に設定します。ラウンド数、ステータス、対戦相手、プレイヤーのじゃんけんの結果を設定します。4つのRGBライトをP8ピンに接続し、表示を更新し、マトリックスに
を表示させます。

② 現在のラウンドの結果を決定します。自分の選択が相手の選択と一致する場合(チョキ/グー/パーはそれぞれ1/2/3)、引き分けです。そうでない場合は、勝者を選択し(チョキはパーに勝ち、パーはグーに勝ち、グーはチョキに勝つ)、ラウンド値を+1して結果を保存します。

③ 結果を配列に保存し、対応する文字列を表示します。これが3回目のゲームの場合、4回目のゲームが必要かどうかを判断します(すべて引き分けまたは勝ち負け引き分けの場合)。必要な場合は「FINAL」と表示し、1秒待ってからじゃんけんの選択をクリアします。

そうでない場合は、勝利の場合は「WINNER」、敗北の場合は「LOSER」、引き分けの場合は「TIE」と表示します。3秒の遅延の後、resetGame関数を呼び出してすべてのゲーム変数をクリアします。
試合が4ゲームで構成されている場合、「GAME OVER」と表示され、3秒の遅延の後、resetGame関数を再度呼び出してすべてのゲーム変数をリセットします。

ゲームが終了していない場合は、
を表示し、両方の選択をクリアします。

④ Cを押すと、ボードはチョキとして「1」を送信し、マトリックスは
を表示します。Dを押すと、ボードはパーとして「3」を送信し、マトリックスは
を表示します。Eを押すと、グーとして「2」を送信し、
を表示します。

⑤ 無線データ(相手の選択)を受信します。

⑥ 4回戦が必要かどうかを判断します。3回すべて引き分けまたは勝ち負け引き分けの場合、4回戦が必要です。そうでない場合は不要です。

⑦ RGBライトは、結果に応じて対応する色を表示します。緑は勝ち、赤は負け、黄は引き分けです。

⑧ ゲームが終了したら、4つのRGBライトの表示をクリアします。

⑨ ゲームの状態をリセットし、すべてのゲーム変数の値をクリアし、RGBライトをリセットし、
を表示します。

4.2.6.6 テスト結果

コードを書き込んだ後、micro:bitボードをゲームパッドのスロットに挿入し(電池が取り付けられていることを確認)、「ON」に切り替えます。
マトリックスには最初に
が表示されます。プレイヤーはボタンを押して手(Eはグー、Dはパー、Cはチョキ)を選択し、2つのデバイス間で試合データを交換します。現在のラウンドの結果を決定します。勝ちは「W」と緑色のRGBライトで示され、引き分けは「=」と黄色のライトで示され、負けは「L」と赤色のライトで示されます(最初のRGBライトは最初のラウンド後に点灯し、以降も同様です)。ゲームが終了していない場合は、次のラウンドに進みます。
ゲームは3回勝負を採用しています。3回すべて引き分けまたは勝ち負け引き分けの場合、4回戦が行われます。
3ラウンド後に勝者がいる場合、勝利の場合は「WINNER」、敗北の場合は「LOSER」と表示されます。結果が表示された後、「GAME OVER」が表示され、ゲームがリセットされます。4回戦が未決定の場合もゲームオーバーになります。

ヒント: 次のラウンドに進む前にハートアイコンが表示されるのを待ちます。ボードが応答しない場合は、micro:bitボードの背面にあるリセットボタンを押してください。



