見出し画像

【Robo Blocksの使い方】2問以上出題するクイズをつくる

ソフトバンクロボティクスでPepperを使ったプログラミング教育を担当してる佐藤です!
今回は、1問だけのクイズなら作れるが2問以上になるとうまく作れないというお話を小耳に挟みましたので、2問以上出題するクイズの作り方を紹介します!


1問だけのクイズをつくる

まずは1問だけ出題するクイズを作ってみます。
ここでは、頭を触ったら「はい」か「いいえ」で答えるクイズを出すプログラムを作ってみました。

出題部分
聞き取り部分

2問目以降を追加する

では、2問目を追加してみましょう。
2問目も「はい」か「いいえ」で答えられるクイズです。1問目の正解は「はい」ですが、2問目の正解は「いいえ」だとします。そうしますと問題によって動きを分ける必要がありますので、今何問目かを記憶する必要があります。そのために変数「今何問目か」を作成しました。プログラム起動時は必ず1問目から始まって欲しいので、旗がクリックされたときのすぐ後に配置して毎起動時に必ず1になるようにします。

起動直後に変数「今何問目か」を1にする。

またせっかく変数を作りましたので、前振りの「第一問!」と発話する箇所も変数で設定してみます。○と○ブロックは文章を繋げることができますので、以下のようにすることができます。

変数を使って問題数を発話する

2問目の問題を設定します。変数「今何問目か」の値によって問題を変えましょう。今回はシンプルに、もし〜ならブロックを2つ並べました。

2問目を追加する

出題部分ができましたので、回答部分を作っていきましょう!
回答部分も同じように、もし〜ならブロックを並べ作ります。
回答が「はい」の場合と「いいえ」の場合、それぞれ今何問目なのかによって発話を変えています。

「はい」「いいえ」それぞれに場合わけを入れる

ポイントは、正誤の発表の後ある”今何問目かを1ずつ変えるブロック”です。
このブロックが動くたびに変数「今何問目か」が1ずつ増えていきますので、何問目かをカウントすることができます。
(コンピュータでは、この1ずつ加える操作をインクリメントと呼びます。)これで複数問のクイズを出題することができました!

リストを使ってブロックを整理することもできる

今の状態ですと、似たような判定と発話ブロックが何度も出てくるので少し見辛く感じるかもしれません。
そういった場合はリストを使うことで整理することができます。
まずが答えが順番に入っているリストを作成します。変数と同じように旗がクリックされた後に初期化するようにしましょう。

1問目の正解が「はい」、2問目が「いいえ」の場合

こうしておくと「はい」か「いいえ」を判定することなく、聞き取った言葉が正解かどうかを判定すれば良いので、以下のようにでます。

リストを使って答えを判定する

かなりブロックを減らすことができました!
また、出題も同じようにリストにしてブロックを減らすことができます。

まとめ

1問だけのクイズであれば非常に簡単に作ることができますが、2問以上となると少し難しくなります。今何問目かを数えるのがポイントで、変数を使う第一歩として取り組むのに良い課題ではないかと思いますので、基本に慣れてきた生徒さんに挑戦してもらうには丁度良い難易度なのではないかと思います。
また、リストを使ったやり方は難易度は上がるものの、ブロックの数を減らして見やすくすることができますのでリストの入門として挑戦すると良いのではないでしょうか。
ぜひお試しください!