M5StickC Plus とUIFlowでプログラミング(8) - じゃんけんプログラム基礎(後編ESPNowを使う)
さて、(7)までで、自分の手を表示することはできました。じゃんけんゲームをするには相手の手を知らなければなりません。
ESPNowによる通信
複数台のM5StickC Plus を使用して通信をすることができます。M5StickC Plusでは、様々な通信方法をとることができますが、ここでは比較的扱いが簡単な「ESPNow」という方法を使用してみます。ベースとなっている技術はWi-Fi通信のようです。
まず、Bボタンを押したときの動作に、「データ(自分の手)をブロードキャスト送信」を追加します。これで、周りに自分の手を送信します。
ブロードキャスト送信は、相手を指定せずに全体に投げかける通信です。イメージ的には大声で教室中に叫ぶようなイメージです。みんなに分かります。
受け側は「MACアドレス(MACアドレス)からデータ(受信データ)を受信」で受信します。
変数に「相手の手」「MACアドレス」「受信データ」を新たに作りましょう。「MACアドレス」はLAN機器1つ1つに割り当てられている文字列で、送信してきた相手を特定することができますが、今回は使いません。ESPNowでの受信データはテキストで送られて来るので、後の判定に利用するために、中央エリア「数学」の「整数に変換する」ブロックで整数にしておきましょう。そうしないと、見た目は数字でも、文字列としての数字で判定がされてしまうので、正しく判定されなくなってしまいます。
また、画像をもう1つ追加して、Aボタンを押したときに相手の手を表示できるようにしておきましょう。追加した変数や画像は初期化や非表示にしておくとよいです。
使用する相手側の手の画像を添付しておきます。
ボタンAの処理です。基本的にはボタンBと同じ処理を使いまわします。「自分の手」が「相手の手」に、画像を「image0」から「image1」に、「gu_me」などの画像の指定を「gu_you」に変更するなどです。
これで、「自分の手を選ぶ」「自分の手を相手に送信する」「相手の手を表示する」という、じゃんけんゲームの根本的な部分はできました。
後は、ゲームとしての使い勝手というか、どれだけユーザーにとって分かりやすくできるか、という部分で工夫のしがいはあると思います。
ここまでのプログラム全体を載せておきます。
この記事が気に入ったらサポートをしてみませんか?