07数字好きの火星人のクイズに答える 【2限目】火星人クイズのアルゴリズムを考えよう

投稿者:クマガイモトツグ
公開日  最終更新日2019/06/26
profile
ENYキッズプログラミングスクール校長 マーケティングエンジニア デザイナー イラストレーター 料理人
小中高校生向けプログラミング教育、MA/マーケティングオートメーションを使ったWEBコンサルティングをはじめ、WEB/アプリのデザイン・開発に従事している

著書「親子で学べる いちばんやさしいプログラミング おうちでスタートBOOK」
「MA/マーケティングオートメーション 5分でできるMA導入と成功する8つのプロセス」
このページを印刷、配布用のファイル(PDF)として保存することができます。
ダウンロードしたデータは教材としてもお使いいただけます。
このページを シェア して
印刷用データ(PDF)をダウンロード

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

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

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

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

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

分解すると
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数字好きの火星人のクイズに答える」授業一覧
▲ TOP