【スクラッチ】リストの使い方

ブロックの基本
Scratch星人
Scratch星人

リストという言葉を辞書で調べると「一覧表」「目録」「名簿」などと解説されています。

では、スクラッチでリストを作る場合に、どのようなデータを、どのように活用すればいいのかについて、実例を用いて紹介したいと思います。

リストとは

以前「変更ブロックの使い方」の記事の中で簡単なリストを作って紹介しました。

「信号」というリストを作成し、その中に「青」「黄」「赤」の色の変数を設定して、それぞれの色によって、メッセージの表示を変更するというものでした。

しかしこれは、あまりリストの恩恵を受けられていないプロジェクトなのです(^▽^;)

どういうことかと言うと、「青」「黄」「赤」三色の不変の情報を無理やりリストにまとめただけなので、通常の変数ブロックを使って作ってもあまり大差はないのです。

不変の情報とは、信号は原則三色なので「増えもせず減りもしない」という意味です。

以下の画像は通常の変数ブロックを使って作った、全く同じ内容のスクリプトです。
ぜひ、以前作ったリストを使ったスクリプトと見比べてみてください。

リストに適したデータ

上で説明したように不変のデータを扱う時は、無理にリストにする必要はありません。
自分のやりやすいように「リスト」か「通常の変数」かを選択していいと思います。

Scratch星人
Scratch星人

実際のプログラミングでは「リスト」の他に「配列」というものがあります。

「配列」は基本的に不変データを扱う時に使うものです。
「リスト」は可変(変化する)データを扱います。

スクラッチの場合は変化するデータを扱う時に「リスト」を使うとメリットがあります。

※厳密にはスクラッチのリストは動的に長さを変えられる可変長配列という配列の一種なのですが、まずはリストっぽい使い方をすると覚えて頂いて大丈夫です。

可変データの例としては、このようなものが挙げられます。

  • 食べもの屋さんのメニュー(売り切れや季節メニューなど)
  • 週間天気予報(予報の修正)
  • 学校のクラス名簿(転校など)

リストを作成する

では実際に「学校のクラス名簿」のリストを作成してみます。

Scratch星人は帝丹小学校の1年B組のクラス名簿を作ります。
お子さまが実際に通う学校の名簿でもいいので真似して作ってみて下さい(^_-)-☆

まずは「リストを作る」で名簿の名前を設定します。
次に出席番号順に生徒を登録していきます。

するとこのようなリストが出来上がります。

「1年B組のすべてを削除する」ブロックを使っている理由は、後々、転校する子や、してくる子がいる場合に備えてです。

では、ここに(ありえませんが)阿笠博士が転校してきたとします。
阿笠博士は出席番号1番なのでこのように追加して「旗印」をクリックしてみて下さい。

お気づきでしょうか?
阿笠博士を1番目に追加したことで、江戸川コナンくんから後の子の番号がひとつずつずれたのです。

転校する場合も、ブロックを追加するだけで1年B組のクラス名簿が更新されます。
来たばかりの阿笠博士ですが研究が忙しく転校することになりました。

このように、一度入力したデータを変更することなく、ブロックを追加していくだけでいいので、とても楽です。

今回はやりませんが、これを通常の変数ブロックでやろうと思うと、出来なくはありませんが、すごく大変ですよ(;・∀・)

Scratch星人
Scratch星人

自分の名前を追加してみるなど、いろいろ試して名簿を完成させてみて下さいね!

リストを活用する

では、作成したリストのデータを使って情報を取り出してみましょう。
3つのスクリプトを用意してみました。

出欠を取る

出席番号を調べる

クラスの合計人数を調べる

完成したプログラム

【操作キー説明】

  • c:出欠確認
  • n:出席番号検索
  • s:合計人数

まとめ

リストの使い方について書いてみました。

スクラッチで可変のデータを扱う際に、とても便利なブロックです。

リストの活用方法はアイディア次第でたくさんあるはずです。
今回のデータを改造したり、オリジナルのリストを作って、ぜひ練習してみて下さいね(*^▽^*)

コメント

タイトルとURLをコピーしました