【2限目】火星人クイズのアルゴリズムを考えよう

投稿者:クマガイモトツグ
公開日  最終更新日2019/06/26

profile
TechKidzACADEMY代表 プログラミングインストラクター デザイナー 料理人
小中高校生向けプログラミング教育、教材の開発、企業研修ほか、WEB/アプリのデザイン・開発に従事している
著書に「小学校6年生までに必要なプログラミング的思考力が1冊でしっかり身につく本」「親子で学べる いちばんやさしいプログラミング おうちでスタートBOOK」Amazon1位、 「MA/マーケティングオートメーション 5分でできるMA導入と成功する8つのプロセス」Amazon1位がある

火星人のアルゴリズムをかんがえよう!

アルゴリズムを考えるので、再度完成品をみていきましょう。

もうアルゴリズムが自分で考えられる人は先にすすんでくださいね。

やりたいこと
火星人をクリックすると質問される。答えを入力するところが表示される。
質問に答えて正しいと火星人が「正解」といって、にっこりする、間違えると「不正解」といって怒る。

今回はやりたいことが短いですね。
分解してみましょう。

分解すると
1-1.火星人をクリックする
1-2.質問するセリフが表示される
1-3.下に答入力欄を表示
2-1.答えが正しいかどうかチェック
2-2.正しかったら、正解という
2-3.正しかったら、ニッコリのコスチュームに変える
2-4.間違っていたら、不正解という
2-5.間違っていたら、怒るコスチュームに変える

ざっとこんな感じでしょうか。

質問と答える部分のプログラム

1-1.火星人をクリックする
1-2.質問するセリフが表示される
1-3.下に答入力欄を表示

火星人のスプライトのコード画面に移動してください。

まずは「1-1.火星人をクリックする」です。

イベントの「このスプライトが押されたとき」をもってくればOKです。
いままでやったのと同じですね。

次の2つですが、これは実はScratch(スクラッチ)では1つのブロックでできています。

1-2.質問するセリフが表示される
1-3.下に答入力欄を表示

調べるの「()と聞いて待つ」というブロックがそれです。

左の()には、火星人に質問させたいセリフを書いてください。
サンプルでは、1+1は? としていますが、答えがわかるものであれば、なんでも構いません。

2つのブロックをつなげるとこうなります。

Scratch(スクラッチ)火星人が質問するブロック

ためしに火星人をクリックしてみてください。

質問と解答入力欄が表示されましたか?

次は、答えがあっているかどうかを判定するプログラム、2-1から2-5までです。

2-1.答えが正しいかどうかチェック
2-2.正しかったら、正解という
2-3.正しかったら、ニッコリのコスチュームに変える
2-4.間違っていたら、不正解という
2-5.間違っていたら、怒るコスチュームに変える

2-2,2-3をみてみてください
「もし〜たら」という言葉に置き換えられますね。

ということで、前にやった条件分岐です。
制御「もし〜なら」というブロックを使います。

制御をクリックすると、「もし〜なら」というブロックが2種類あることがわかります。

Scratch(スクラッチ)のもし〜ならブロック

今回はどちらを使うのがいいのでしょうか?

どちらをつかってもプログラムはうごきます。

今回のようなクイズのような場合は、「答えがあっていなければ、かならず間違い(2-3)」ということになりますよね。
ですので、「もし〜なら〜でなければ〜」ブロックを使うと便利です。

クイズが正解かどうかを判別するプログラムをこの2種類ブロックそれぞれでつくるとこんな並びになります。

Scratch(スクラッチ)2種類の条件分岐ブロック

左側の「もし〜なら」のブロックを2つつなげた方が、条件ブロックを2つ用意する必要があり、右側の方がスッキリしていてわかりやすいですよね。

答えが3つ以上あって、答えによって実行することが別の場合などは、「もし〜なら」や「もし〜なら〜でなければ〜」を複数組み合わせることになります。

ということで今回は右側のブロックを使います。

「もし〜」の条件分岐のブロックをつかうときは、まず条件を設定するブロックが必要です。

今回の質問は「1+1は?」という質問でした。
なので
「答えがあっている」というのは、「入力した答えが2」ということになります。

今回初めて使った「()と聞いて待つ」ブロックに関連して「答え」というブロックがあります。
クイズの入力した答えは、じつはこの「答え」というブロックに入っていることになります。

ブロックに入っているというとわかりづらいかもしれませんが、「答え」という名前がついた箱に入力した数字が入っていると思ってください。
こういう箱をプログラムでは「変数」といいます。詳しくは別のところでお話します。

ではこれをどうやって使えばいいでしょうか?

これについては、次回の授業でお話します。

「07数字好きの火星人のクイズに答える」授業一覧
当スクールは出版、各種メディア・企業様に、学習コンテンツ等の提供を行なっております。 プログラミング教育コンテンツは対馬市の教育委員会に認定され対馬市の全小学校で採用されました。
全国書店にて発売中!
2022年夏開校 オンラインスクール
オンラインでプログラミングを本格的に学べます。
学習塾・学校関係者様
副業・起業されたい方
プログラミングは簡単
プログラミング教材で採用されたTechKidzACADMEY
当スクールは出版、各種メディア・企業様に、プログラミング教材・コンテンツ等の提供を行なっております。 プログラミング教育コンテンツは対馬市の教育委員会に認定され対馬市の全小学校で採用されました。
paiza株式会社
このサイトはスクラッチ(SCRATCH)を使ったプログラミング学習のためのサイトです。スクラッチの使い方からゲームの作り方まで様々な内容をお伝えします。

▲ PAGE TOP