Scratchの手引き

スクラッチでリストと変数を使ってみる

Scratchはアメリカの大学、MIT(マサチューセッツ工科大学)メディアラボで開発されたビジュアルプログラミング言語です。

はじめに

あらかじめデータを格納しておき、そのデータを使ってプログラムの処理を実行できる「リスト」について解説していきたいと思います。

「リスト」は「番号の振られたデータを格納できるパッケージ」を想像していただければよいと思います。「卵パック」で例えると、「リスト」は「卵パック」自体で、「データ」が「卵」です。「卵パック」にある「卵」は出し入れができまし、どの「卵」を取り出すかは、「卵」に番号が振られているので、その番号を指定すればできるという感じです。また「卵パック」には卵1個分のものなら、大体入れられるという感じで想像いただければよいかと思います。

今回は、事前に「リスト」にデータとして「セリフ」となる文字列を格納して、番号順にそのデータ、つまり「セリフ」を吹き出しで表示させるものを作っていきたいと思います。

今回作成するプログラム(の旗をクリックして動作を確認することができます)

スプライトにリストを追加

まず、新規でプロジェクトを作っておきます。
続けて、このネコの「スプライト」に対して「リスト」を作成していきたいので、ネコの「スプライト」をクリックしておきます。

コードブロックの中の「変数」の中に「リストを作る」というボタンがあるのでクリックします。

「リストを作る」をクリックすると、「新しいリスト」というモーダル画面が表示されます。

「新しいリスト」の名前は何でも良いのですが、ここではわかりやすく「セリフ」と入力しておきます。

続けて、この「リスト」はネコの「スプライト」でしか使用しないので、「このスプライトのみ」にチェックを付けておきます。

ここまでできたら最後に「OK」をクリックします。

先ほどの操作で「リスト」が作成されました。

ステージを見ると、ネコの「スプライト」の左側に「リスト」が表示されています。
作成はされたものの、まだ中身は「空」の状態ですので、データを入れていきたいと思います。

リストにデータを設定する

「リスト」にデータとして「セリフ」を設定していきます。
今回はあいさつを3つ設定していきます。

「リスト」にデータを設定するには、「リスト」の左下の「+」マークをクリックすると、オレンジ色の番号付きの入力欄が表示されます。その中の1番目に「おはよう」と入力してください。

同じ操作を繰り返して、2番目には「こんにちは」、3番目には「こんばんは」というように「リスト」にデータとして「セリフ」を設定していきます。

空のデータは不要なので、「✖️」をクリックして消してください

これで事前準備となる「リスト」にデータが設定できました。
次はこれを順番に表示していくプログラムを組んでいきます。

変数を使ってリストを表示する

プログラムが動く合図となるブロックをまずは入れていきたいので、「が押されたとき」のブロックをドラッグします。

「リスト」の中のデータの番号は「変数」を使って指定していきたいと思います。

「変数を0にする」のブロックをドラッグして、下にくっつけてください。
初期状態は「0」にしたいので、もし「0にする」になっていなかったら、「0」に変更してください。

今回は、「リスト」の中のデータを繰り返し表示していきたいので、「10回繰り返す」のブロックをドラッグして下にくっつけてください。

ここで「10」となっていますが、あとで変更するのでこの段階では何の数字が入っていても構いません。

次に「10回繰り返す」の中に「変数を1ずつ変える」のブロックを入れてください。
これで「変数」の中の数字が繰り返されるごとに1ずつ増えていきます。増えることで「リスト」の中の番号を取り出していく感じになります。

次に吹き出しのブロックを入れていきたいので、「こんにちは!と2秒言う」のブロックを「10回繰り返す」の中に入れてください。

すでに「こんにちは!」というようになっていますが、次に「リスト」の中のデータが表示されるようにするので、このままで構いません。

いよいよ「リスト」をプログラムに入れていきます。

「セリフの1番目」のブロックを「こんにちは!」のところにドラッグして入れてください。
これで「リスト」のデータがプログラムに反映されました。

しかしこのままではずっと1番目のデータになるので、2秒間隔で10回「おはよう」と吹き出しが出るだけなので、「変数」を使って「リスト」の番号を指定していきます。

「1番目」の「1」のところに「変数」のブロックをドラッグしてください。
これで、1ずつ増えていく毎に「リスト」の番号ごとに表示されます。

最後に「10回繰り返す」のところを調整します。

今回は「リスト」には3つのデータしかないので、3回繰り返しでいいはずです。
このまま「10」のところを「3」と入力してもよいのですが、「リスト」のデータが増えるたびにこのの数字も変えるのは面倒なので、「リスト」の数だけ繰り返すようにします。

「セリフの長さ」というブロックがあるので「10」のところにドラッグしてください。
これで「セリフの長さ」分だけ繰り返されますので、もし「リスト」にデータが追加されてもプログラム自体を変更する必要はありません。

最後にをクリックして動作を確認してみてください。
2秒間隔で「リスト」に入れたデータの「セリフ」が吹き出しとして表示されます。

まとめ

  • 「リスト」を作成する
  • 「リスト」の中にデータを設定する
  • 「変数」を使って「リスト」の中のデータの番号を指定する
  • 繰り返す場合は「リストの長さ」を活用する

今回は、事前に「リスト」の中にデータを入れて、それを吹き出しとして表示しましたが、「リスト」はプログラムで「追加」したり「削除」することもできます。それをするには「もし〜なら」という条件分岐も利用する必要がりますが、是非チャレンジしてみてください。