↑前回は、早押しボタンのプログラムでした。
我が家は4人家族なので、2対2でカルタの対戦をしたいと思いつきました。
そこで、カルタの読み上げプログラムを作ることにしました。
今回もScratchを使用します。
あらかじめ読み札を録音しておくのですが、その音声ファイルを乱数を使って拾います。
※乱数とは、指定した数字の範囲から、ランダムに数字を選び出す機能のこと。くじ引きプログラムや、ゲームの敵の出現等によく使われる。
ややこしいのは、一度読んだ札は、拾ってはいけないのです。
なお、Scratchはデータテーブルがありません。
「番目」の付いたリストを使います。
①テストとして、まずは5札程、音声データを録音してください。
②変数を作ります。
「ランダム」「札数」「札数から引く」「番号」「読む順」という変数を作ります。
③「順番通り」と「順番入替」というリストを作ります。
④「札数」は「5」にします。
⑤スタートボタンを押したとき、
「順番通り」リストには、「1」「2」「3」「4」「5」と、数字の値をセットします、
⑥乱数を使います。
「ランダム」変数に、乱数を使って、「1」~「5」のいずれかの数字をセットします。
「順番通り」リストの、「ランダム」変数にセットされた「番目」の値を、「順番入替」リストに追加します。
少し分かりにくいのですが、下の画像の、赤枠で囲った部分が「番目」で、青枠は「リスト」の「値」です。
「順番通り」リストの3番目が乱数で指定されて、3番目に入っていた「3」の値が「順番入替」リストに追加されたということです。
その後、「順番通り」リストの、「ランダム」変数にセットされた「番目」のデータを、削除します。
次は、「1」~「4」までの乱数を使って、また「番目」を出します。
「順番通り」リストからその「番目」の値を選んで、「順番入替」リストの最後に値を追加します。
そして、「順番通り」リストから、その「番目」のデータを削除します。
ここまでで2件のデータが、「順番通り」リストから「順番入替」リストに移動しました(↓)。
最終的には、「順番通り」リストは空になって、「順番入替」リストに、ランダムに数字が格納されます(↓重複する数字はない)。
・札数だけ「順番入替」にセットする繰り返し(LOOP)処理
・乱数のMAX値を1ずつ減らす(5→4→3と減らしていく数字を、「札数から引く」という変数にセットする)。
・リストの値を最初にすべて削除する
これらのことに気を付けてプログラムを組みます。
⑦ここまでできたら、あとは簡単です。
ネコのキャラクターをクリックする度に、
「順番入替」リストの値に入っている順番に、音声ファイルを読み上げるだけです。
プログラミング画面を貼ります。
クイズ早押しボタンと同様、
学習に活用できると思います。
親がついていなくても、子どもだけでカルタをやってくれます。
次男が一生懸命音声を吹き込んでくれたのですが、子どものカワイイ音声は宝物です。