算数

大きい方をえらんでね

長さや重さなど、いろいろな単位について大きい方をえらぶクイズです。プログラミングしながら、いろいろな単位を覚えましょう!

ー 目次 ー
  • 作るものをイメージする(目標を決める)
  • プログラム作成のポイント
  • 全体的なイメージ作成
  • 問題と答え組み合わせ
  • 司会者「ねこ」と問題者「サルとペンギン」のれんけい
  • サンプルプログラム

作るものをイメージする(目標を決める)

今回は、大きい数や重さで大きい方をえらぶプログラムを作りたいと思います。全部で10問、サルとペンギンどちらが大きい数や重さをしゃべっているか当てるクイズです。では一緒にプログラムを考えてみましょう!

プログラム作成の目標
  1. クイズは、全部で10問とする
  2. サルとペンギンが、それぞれ問題を出す
  3. 大きい方を言っている動物(サルかペンギン)を選んでもらう
  4. 「せいかい」と「まちがい」を音で伝える

クイズの背景や音なども使い、楽しい感じにしたいと思います。

プログラム作成のポイント

全体的なイメージ作成

今回は、登場者(スプライト)が多いので、誰が何をするのか分担を決めたいと思います。

「ねこ」は司会者とする。なので役割は、

  • 問題を出すように「さる」と「ペンギン」に指示する
  • 回答が正しいか確認する
  • 全10問が終わるまでクイズを続ける

「サル」は問題を出す人とする。なので役割は、

  • 「ねこ」からの指示で問題を表示する
  • 回答で「さる」がえらばれたとき、「ねこ」へ「さる」がえらばれたことを伝える

「ペンギン」も問題を出す人とする。なので役割は、

  • 「ねこ」からの指示で問題を表示する
  • 回答で「ペンギン」がえらばれたとき、「ねこ」へ「ペンギン」がえらばれたことを伝える

大きく役わり分担を決めることで、どのスプライトで、どのようなプログラムを作るかイメージできて、プログラミングがスムーズに進みます。

問題と答え組み合わせ

今回むずかしいところは、問題と答えをどのように用意するかです。

問題については、「さるの問題」と「ペンギンの問題」をリストで作り、上から順番に問題を出すようにします。例えば、司会者の「ねこ」が1問目と言います。サルは、「さるの問題」リストの上から1つ目「1cm」、ペンギンは、「ぺんぎんの問題」リストの上から1つ目「1mm」を言います。

次に司会者の「ねこ」が答えを知っておく必要があります。答えも問題に合わせて「正解の一覧」をリストで作ります。「正解の一覧」の「1」は「さるが正解」、「2」は「ペンギンが正解」という意味です。

これで問題と答えがそろいました。たとえば1問目は、サルが「1cm」ペンギンが「1mm」と言います。1問目の正解は「1」なので、「サルの方を選んだら正解」「ペンギンの方を選んだらまちがい」になります。

問題と正解の一覧を変えれば、いろいろな問題が作れますね!

司会者「ねこ」と問題者「サルとペンギン」のれんけい

次に考えるところは、司会者「ねこ」と問題者「サルとペンギン」のれんけいプレーです。

まず最初に必要なれんけいプレーは、問題を出すところです。「ねこ」から「イベントブロック」で指示を出します。「サル」と「ペンギン」は、「イベントブロック」を受け取り、変数「問題一覧の何問目」を確認し、同じ問題(問題リストの上から何番目)を表示します。

イベントブロックを使えば、他のスプライト(サルやペンギン)に指示を出せます。またスプライト間で情報を共有するときは、すべてのスプライト用変数で行います。

次に必要な連携プレーは、「サル」か「ペンギン」どちらが選ばれたかを「ねこ」へ教えるところです。「サル」と「ペンギン」どちらのスプライトも「このスプライトが押されたとき」を受け取るようにします。さらに、「ねこ」がどちらのスプライトが選ばれたか分かるように、変数「回答」にそれぞれの値を登録します。「サル」が選ばれたなら「1」、ペンギンが選ばれたなら「2」にします。最後に、「ねこ」に回答されたことを「イベントブロック」で指示を出します。「ねこ」は、変数「回答」の値で、どちらのスプライトが選ばれたか分かりますので、回答が正しいか確認できます。

上の図は、「さる」の方が大きいと回答したときのイメージです。

初めは、イベントブロックの扱いが少しむずかしく感じますが、なれると便利で、いろいろ難しいプログラミングも作れるようになれますので、がんばって覚えてみましょう!

サンプルプログラム

作成したプログラムを公開してます。画像をクリックするとスクラッチのホームページに移動し、動かしたり、中身を見ることができます。試してみてください。

問題を変えたりできますので、いろいろ試してみてください。