本記事では、Scratch(スクラッチ)3.0で使える「調べる」カテゴリの「○○と聞いて待つ」ブロックと「答え」ブロックを実例付きで分かりやすく解説しております。
「○○と聞いて待つ」ブロックは、指定した文章を使ってスプライトが質問を行い、さらにその回答の入力欄を表示します。
「答え」ブロックは、解答欄に入力した内容を取り出すための値ブロックです。
以下でもっと具体的に解説します。
Scratch(スクラッチ)のプログラミングを学ぶ上で、個々のブロックの本質を理解することはとても大事なことだと考えます。
お役に立てれば幸いです。
Scratch(スクラッチ)の基本的なことや全般的な内容に関しましては以下の別記事をご覧ください。
「調べる」の「○○と聞いて待つ」ブロックと「答え」ブロック 形状とオプション(Scratch3.0)
始めに、本記事で解説しますブロックの形状と指定可能なオプションについて説明します。
ブロックの形状
「○○と聞いて待つ」ブロックの形状はスタックブロックです。
ブロックの上下に色んなブロックを重ねられます。
「答え」ブロックの形状は値ブロックです。
ブロックに格納されている値を教えてくれます。
指定可能なオプション
以下の値を指定できます。
「○○と聞いて待つ」ブロック
指定する場所 |
---|
(←赤枠部分) |
入力方法 |
手動 |
指定する内容 |
スプライトが質問する内容 |
単位 |
なし |
入力する文字種 |
半角全角OK |
備考 |
特記無し |
「答え」ブロック
利用可能なオプションはありません。
「調べる」の「○○と聞いて待つ」ブロックと「答え」ブロックの解説(Scratch3.0)
本記事で解説する内容や押さえておきたいポイントは以下のとおりです。
- 「○○と聞いて待つ」ブロックの質問の回答内容を簡単に利用可能
- 色や量などを入力してもらってプログラム内で利用する
- 入力待ちをキャンセルさせる方法
具体的な使い方を実例をまじえて解説します。
「○○と聞いて待つ」ブロックの質問の回答内容を簡単に利用可能
「○○と聞いて待つ」ブロックが実行されますと、ステージ内のスプライトがブロックにセットした文章を言ってくれます。
それと同時に、ステージ下部に回答用の入力欄が表示されます。
回答内容は、値ブロックの「答え」ブロックに格納されますので、プログラム内で簡単に利用可能です。
名前を入力してもらい、スプライトに「○○さん、こんにちは!」などと表示させる例は良く見かけるでしょう。
色や量などを入力してもらってプログラム内で利用する
回答欄に入力してもらった内容をそのまま出力させるのではなくて、座標や移動量などのようなデータを入力してもらい、そのデータによってスプライトを移動させたり大きくしたりすることもできます。
また、音量を変えたりスプライトの色を変えることも可能です。
試しに、入力した数字に応じてスプライトの大きさを変えてみましょう。
以下のプログラムを作成してください。
入力した数字によってスプライトの大きさが変わります。
数字を入力してもらう場合には、入力内容のチェックを行うことをおすすめします。
半角数字を入力してもらいたのに全角数字を入力されたり、想定外の大きい数字を入力されることもありますので、想定外のデータの場合は再度入力してもらう仕組みを入れましょう。
上の例では、数字を半角数字の10~200の範囲に限定しています。
入力待ちをキャンセルさせる方法
場合によっては、何を入力してよいか判断できない方もいらっしゃるかもしれません。
「○○と聞いて待つ」ブロックは、なにか入力してEnterキー(若しくは入力欄右わきの「レ」マーク)を押さないとプログラムは先に進みません。
利用者を困らせないために、入力をキャンセルしてもらって、再度やり直してもらう処理を作ってあげますと親切ですね。
色々やり方はあると思いますが、2つほど例を挙げておきます。
一定時間経過したら自動的にキャンセルさせる
プログラムの一例です。
「○○と聞いて待つ」ブロックを表示すると同時に内部タイマーをリセットさせます。
そして、タイマーが一定時間になると「タイマー>3のとき」ブロックに処理が移動して、後続のブロックを実行するようになります。
「タイマー>3のとき」ブロックの数字を変えますと、キャンセルされるまでの時間を変更可能です。
例では「すべてを止める」ブロックでプログラムを停止していますが、このブロック以降にキャンセル後の処理を作成することになります。
また、再度質問させるためには、メッセージを送る機能を利用するなど、ちょっと工夫すれば可能です。
スプライトをマウスでクリックすると入力をキャンセルさせる
プログラムの一例です。
利用者にスプライトをマウスでクリックしてもらうことで、入力をキャンセルできます。
質問文内に、「質問がわからなかったらボクをマウスでクリックしてね!」などを追記すればわかりやすいかもですね。
こちらの例も「すべてを止める」ブロックでプログラムを停止していますが、このブロック以降にキャンセル後の処理を作成することになります。
他にも色々な方法があると思います。利用者目線の良い方法を見つけてみてください。
おすすめの方法が見つかりましたら、私にも教えてもらえるとありがたいです!
まとめ
利用者になにか入力してもらって、それに対応した処理を行う対話型のプログラムは、入力してもらった後の処理次第で満足度が違ってきます。
調べるカテゴリのブロックの使い方を理解して楽しいプログラムを作ってみましょう!
本サイトでは他にもScratch(スクラッチ)に関する記事を公開しております。
よろしかったらご利用ください。
最後までお読みいただきありがとうございました!
(参考)
困ったときはいつもこのサイトを参照しています
コメント