九九の問題は変数を使って出題しよう
前回よりスタートしたScratchの「九九練習アプリ」作り。今回は問題を出す仕組みを作っていきます。
ここでポイントとなるのが、「かける数」と「かけられる数」を変数で管理する点です。1~9までの数字がランダムに入るようにすることで、その都度違う九九の問題を出すことができます。
必要な変数を3つ作る
ネコのキャラに問題を出させる設定をします。まず最初に変数を作りましょう。今回必要な変数は以下の3つです。
- かけられる数
- かける数
- 正解した数
図の例では、問題を出すネコのキャラのスクリプトとして変数を作っています。「データ」の「変数を作る」をクリックして、変数名を入力しましょう。
なお、変数については過去記事「ネコのライフが減る仕組みを作ろう【雪避けゲーム-6」で詳しく紹介していますので、わからない場合はこちらもご覧ください。
同じ要領であと2つ変数を作り、必要な3つの変数ができました。
詳しく知りたいときは
今回のアプリ作成で使う機能は、過去の記事で扱ったものばかりなので、それぞれの説明はあっさり目になっています。
もっと詳しく知りたい場合は、併記してある過去記事をチェックしてみてください。
変数に入れる値を決める
変数の「かけられる数」と「かける数」に入る値を指定します。今回は九九なので、1~9のどれかの数がランダムに入るようにするため「乱数」を使います。値の指定はアプリの起動時に実行したいので、最初に「緑の旗がクリックされたとき」ブロックを入れましょう。
変数の値を設定は、「データ」にある「(変数名)を●●にする」を使います。下図のようにつなげたら、変数名を選択します。
そこに「演算」にある「1から10までの乱数」ブロックをはめ込んで、乱数の範囲を「1から9まで」に変更します。
(乱数について詳しい説明は、過去記事の「ランダムな場所から雪が降るように設定する【雪避けゲーム-3】」にて紹介しています)
問題を出す仕組みを作る
プレーヤーに回答してもらうための問題を出すとき、Scratchでは「調べる」の「〇〇と聞いて待つ」ブロックを使います(詳しい使い方は過去記事「Scratchのキャラとプレイヤーでやり取りする仕組みを作ろう(自己紹介アプリ-1)」で紹介しています)。
質問内容は複数のブロックをつなげて作る
問題を出すため、まずは「調べる」の「〇〇と聞いて待つ」ブロックを図の位置に配置しましょう。
今回の質問は、「お名前は?」のように単純な文字だけではなく、以下の4つの要素を組み合わせて作成します。
- 変数「かけられる数」
- ×の記号
- 変数「かける数」
- 「は?」の文字
このように複数の要素を入れたいときは、入力欄がその数だけ必要です。そこで演算にある「〇と〇」のブロックをいくつかつなげて使います。
「〇と〇」を配置したら、右側の〇の部分に「〇と〇」のブロックをはめ込みます。これを繰り返して3つのブロックをくっつけると、図のように4つの入力欄が用意できます。
それぞれの欄に必要な4つの項目を入れましょう。変数はブロックをはめ込んで、文字は入力します。
入力ができたら、「〇と聞いて待つ」のブロックに図のようにはめ込みます。
これで一度実行してみると、図のように問題が出されます。それぞれの変数にランダムに数字が入り、出す度に問題が変わります。
正解数をカウントする仕組みを作る
このアプリでは、正解した数を最後に発表するので、何問正解したかを数えておく仕組みが必要です。そこで正解した場合は、「正解した数」の変数が1ずつ増えるようにブロックを並べます。
正解の場合の条件を指定する
どんな場合に「正解」と判断すべきかの条件を設定しましょう。まずは「制御」にある「もし〇〇なら」ブロックに、「演算」にある「□=□」ブロックを図のようにはめ込みます。
次に「□=□」ブロックの右側の欄に「〇*〇」ブロックをはめ込みます。図のように入力欄が3つになればOKです。
最初の欄には「調べる」にある「答え」ブロックをはめ込みます。「〇*〇」部分には、データにある「かけられる数」と「かける数」のブロックをはめ込みます。この部分は順不同です。
正解した数を数える変数に反映させる
条件通りの答えが入力されたら「正解した数」の変数が1ずつ増えるようにするため、「もし〇〇なら」ブロックの間に、「データ」にある「(変数名)を1ずつ変える」ブロックを入れて、変数名部分を「正解した数」にします。そして前のブロックと図のようにつなげましょう。
ここまでできたら試しに実行してみます。「緑の旗」をクリックして、表示された問題の答えを入力。青いチェックマークボタンをクリックするか、「enter」キーを押します。
すると左上に表示されている、「正解した数」の変数の数値が1増えました。
数の初期化と問題数を設定する
アプリの起動時には、正解数を毎回ゼロに戻す必要があるので、正解した数を0に戻すためのブロックを「緑の旗がクリックされたとき」のすぐ下に入れます。
さらに「制御」にある「〇回繰り替えす」ブロックで、図のように出題部分を挟み、出題数を指定します。図の例では10問出したいので「10回繰り返す」となっています。
「問題を出して正解数をカウントする」仕組みはこれで完了です。次回は「正解数の発表」部分を作っていきたいと思います。