【Robo Blocksの使い方】ルーレットの作り方
ソフトバンクロボティクスでPepperを使ったプログラミング教育を担当してる佐藤です!
今回は、以下のブロックを使って簡単なルーレットを作ってみます。
プログラミングを始めたての方には使い方が想像しにくいブロックですが、慣れると便利ですので是非使ってみてください。
ルーレットを作る
2択の選択肢をPepperがルーレットでランダムに抽選するアプリを作ってみましょう。
ここでは、図書室にPepperがいる設定で、先生がお勧めする本かPepperがお勧めする本かのどちらかをランダムに紹介してくれるアプリという想定で作っていきます。
ポイントは「ランダムに抽選する」です。2択をランダムに抽選するだけであれば乱数を使い、1か2のどちらかが出たかを判断すれば実現できます。しかし、ルーレットの場合はどちらに止まるのか分からないという演出を行うため、以下のように2回以上画面を切り替えることになります。
(画面を切り替えてアニメーションを作る方法はこちらの記事をご覧ください。)
例えば画面を10回切り替えた場合は右側の選択肢で止まることになります。10という数字から2択のどちらが選ばれたか判定したい、そんな時に役立つのが”あまりブロック”です。
作り方
まずは乱数を用意しましょう。抽選回数を5~10回に設定しました。
繰り返し画面を切り替える必要があるので、"乱数"回繰り返すように組みます。"繰り返し回数"という変数も用意して、何回繰り返しているかも数えるようにします。
次に繰り返す中身を作ります。やりたいことは画面の切り替えですので、以下のようになります。
"もし〜ならブロック"の条件を設定します。ここで登場するのが”あまりブロック”です。
"繰り返し回数"を2で割ってあまりを使用することで、どんな数が来ても1か0に変換することができます。
以下のように"もし〜ならブロック"と組み合わせてみます。=1の場合には左に止まっている画像、=0の場合には右に止まっている画像を表示します。
"繰り返し回数"は1から始まりますので、初回は1÷2あまり1で上の条件に当てはまり、2回目は2÷2あまり0で下の条件に当てはまります。"あまりブロック"はあまりを取得するブロックですので、商が幾つであるかは無視できます。
先ほどの繰り返しと組み合わせると以下になります。
このままですと画面の切り替えがかなり早いため、お好みに応じて待ち時間を設定しましょう。以下では1秒の待ち時間を設定しました。
ここまででランダムな回数画面を切り替えてどちらかに止めることができました。
あとはこの後にどちらに止まったか判定して、その後の処理を作れば完成です。
大元の"乱数"を2で割ってあまりを求めることで、最終的にどちらだったのか判定できます。
ここでは、どちらに止まったのかPepperが発話するように作ってみます。
これを先ほどのブロック群の下にくっつけて完成です。
まとめ
本記事では、簡単なルーレットを作成する方法を紹介しました。
2択のシンプルな例をご紹介いたしましたが、3択以上のルーレットも同じように作ることができます。
また、画面切り替え時に効果音を入れるなどで演出を強化すると、より楽しいアプリになると思います。
最後に補足となりますが、今回は2択ですので"もし〜なら そうでなければブロック"を使うと以下のように少しスッキリさせることができます。
こちらも是非使ってみてください。
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ソフトバンクロボティクス株式会社 ホームページ
https://www.softbankrobotics.com/jp/
Pepper教育関係者フォーラム
https://pepper-schoolchallenge.com/
Pepper for Education
https://www.softbankrobotics.com/jp/product/education/
STREAMチャレンジ
https://www.softbankrobotics.com/jp/product/academy/stream/
━━━━━━━━━━━━━━━━━━━━Pepperブログ編集部━┛