初心者OK!こどもプログラミング入門(Scratch)

子ども向けプログラミング学習の定番「Scratch」の使い方。我が子(小学1年)の初挑戦記録付き。

九九の問題をランダムに出すには(九九練習アプリ作成-2)

 

f:id:shufufu:20170519160544j:plain

九九の問題は変数を使って出題しよう

前回よりスタートしたScratchの「九九練習アプリ」作り。今回は問題を出す仕組みを作っていきます。

ここでポイントとなるのが、「かける数」と「かけられる数」を変数で管理する点です。1~9までの数字がランダムに入るようにすることで、その都度違う九九の問題を出すことができます。

 

必要な変数を3つ作る

ネコのキャラに問題を出させる設定をします。まず最初に変数を作りましょう。今回必要な変数は以下の3つです。

  • かけられる数
  • かける数
  • 正解した数

 

図の例では、問題を出すネコのキャラのスクリプトとして変数を作っています。「データ」の「変数を作る」をクリックして、変数名を入力しましょう。

なお、変数については過去記事「ネコのライフが減る仕組みを作ろう【雪避けゲーム-6」で詳しく紹介していますので、わからない場合はこちらもご覧ください。

f:id:shufufu:20170519161347j:plain

 

同じ要領であと2つ変数を作り、必要な3つの変数ができました。

f:id:shufufu:20170519161450j:plain

詳しく知りたいときは

今回のアプリ作成で使う機能は、過去の記事で扱ったものばかりなので、それぞれの説明はあっさり目になっています。

もっと詳しく知りたい場合は、併記してある過去記事をチェックしてみてください。

 

変数に入れる値を決める

変数の「かけられる数」と「かける数」に入る値を指定します。今回は九九なので、1~9のどれかの数がランダムに入るようにするため「乱数」を使います。値の指定はアプリの起動時に実行したいので、最初に「緑の旗がクリックされたとき」ブロックを入れましょう。

 

変数の値を設定は、「データ」にある「(変数名)を●●にする」を使います。下図のようにつなげたら、変数名を選択します。

そこに「演算」にある「1から10までの乱数」ブロックをはめ込んで、乱数の範囲を「1から9まで」に変更します。

(乱数について詳しい説明は、過去記事の「ランダムな場所から雪が降るように設定する【雪避けゲーム-3】」にて紹介しています)

f:id:shufufu:20170519162332j:plain

 

問題を出す仕組みを作る

プレーヤーに回答してもらうための問題を出すとき、Scratchでは「調べる」の「〇〇と聞いて待つ」ブロックを使います(詳しい使い方は過去記事「Scratchのキャラとプレイヤーでやり取りする仕組みを作ろう(自己紹介アプリ-1)」で紹介しています)。

 

質問内容は複数のブロックをつなげて作る

 問題を出すため、まずは「調べる」の「〇〇と聞いて待つ」ブロックを図の位置に配置しましょう。

f:id:shufufu:20170519162553j:plain

 

今回の質問は、「お名前は?」のように単純な文字だけではなく、以下の4つの要素を組み合わせて作成します。

  • 変数「かけられる数」
  • ×の記号
  • 変数「かける数」
  • 「は?」の文字

 

このように複数の要素を入れたいときは、入力欄がその数だけ必要です。そこで演算にある「〇と〇」のブロックをいくつかつなげて使います。

「〇と〇」を配置したら、右側の〇の部分に「〇と〇」のブロックをはめ込みます。これを繰り返して3つのブロックをくっつけると、図のように4つの入力欄が用意できます。

f:id:shufufu:20170519162742j:plain

 

それぞれの欄に必要な4つの項目を入れましょう。変数はブロックをはめ込んで、文字は入力します。 

f:id:shufufu:20170519162848j:plain

 

入力ができたら、「〇と聞いて待つ」のブロックに図のようにはめ込みます。

f:id:shufufu:20170519162914j:plain

 

これで一度実行してみると、図のように問題が出されます。それぞれの変数にランダムに数字が入り、出す度に問題が変わります。

f:id:shufufu:20170519162940j:plain

 

正解数をカウントする仕組みを作る

このアプリでは、正解した数を最後に発表するので、何問正解したかを数えておく仕組みが必要です。そこで正解した場合は、「正解した数」の変数が1ずつ増えるようにブロックを並べます。

 

正解の場合の条件を指定する

どんな場合に「正解」と判断すべきかの条件を設定しましょう。まずは「制御」にある「もし〇〇なら」ブロックに、「演算」にある「□=□」ブロックを図のようにはめ込みます。

f:id:shufufu:20170519163146j:plain

 

次に「□=□」ブロックの右側の欄に「〇*〇」ブロックをはめ込みます。図のように入力欄が3つになればOKです。

f:id:shufufu:20170519163257j:plain

 

最初の欄には「調べる」にある「答え」ブロックをはめ込みます。「〇*〇」部分には、データにある「かけられる数」と「かける数」のブロックをはめ込みます。この部分は順不同です。

f:id:shufufu:20170519163319j:plain

 

正解した数を数える変数に反映させる

条件通りの答えが入力されたら「正解した数」の変数が1ずつ増えるようにするため、「もし〇〇なら」ブロックの間に、「データ」にある「(変数名)を1ずつ変える」ブロックを入れて、変数名部分を「正解した数」にします。そして前のブロックと図のようにつなげましょう。 

f:id:shufufu:20170519163420j:plain

 

ここまでできたら試しに実行してみます。「緑の旗」をクリックして、表示された問題の答えを入力。青いチェックマークボタンをクリックするか、「enter」キーを押します。

f:id:shufufu:20170519163443j:plain

 

すると左上に表示されている、「正解した数」の変数の数値が1増えました。

f:id:shufufu:20170519163506j:plain

 

数の初期化と問題数を設定する

アプリの起動時には、正解数を毎回ゼロに戻す必要があるので、正解した数を0に戻すためのブロックを「緑の旗がクリックされたとき」のすぐ下に入れます。

さらに「制御」にある「〇回繰り替えす」ブロックで、図のように出題部分を挟み、出題数を指定します。図の例では10問出したいので「10回繰り返す」となっています。

f:id:shufufu:20170519163616j:plain

 

「問題を出して正解数をカウントする」仕組みはこれで完了です。次回は「正解数の発表」部分を作っていきたいと思います。 

 

Copyright © 2016 初心者OK!こどもプログラミング All rights reserved.