Scratchでのプログラミングの基本的な内容についてです。今回はリストを使います。ここでのリストとはScratch Wikiのリストから以下に引用します。
リスト(他のプログラミング言語では配列と呼ばれる)は、複数の情報を一度で取り扱うためのツールである。リストの中身は、通し番号で管理される。
一般的なプログラミングとしてはデータ構造とアルゴリズムという重要なテーマがあってリストや配列というのがデータ構造でありそのデータ構造のデータをどのような流れで処理をするかがアルゴリズムです。ここではScratchなのでリストを上記のScrath Wikiの「複数の情報を一度で取り扱うためのツール」ということに注目して実際に使ってみます。
リストと変数の違い
リストと変数の違いについてです。
変数は単独の値を保持します。以下は例です。
x = 1
(この時点は1という値を保持している)
x = 2
(この時点は2という値を保持している)
このようにある時点では単独の(ひとつの)データのみを保持しています。
これに対してリストでは「複数の情報を一度で取り扱う」ことが出来ます。上の変数xの1,2の値を同時に保持出来るということです。そのリストをどのように作って、どうように複数のデータを扱うのかを順番に書いていきます。
リストの作り方
変数のカテゴリを表示して「リストを作る」をクリックします。
新しいリスト名(ここではMyList)を入力します。また、すべてのスプライト用の選択のままでいいです。
以下のようにMyListのリストが作成されました。まだ何も値は持っていません。空の状態です。
リストへの値の追加
リストへ追加するブロックで追加が出来ます。
このブロックをクリックして実際に追加すると以下のようにリストの内容を確認することが出来ます。
リストの各データの取得
リストの何番目のデータという指定でデータを取得します。何番目という番号をScratch Wikiのリストの説明では通し番号と表現していますが、一般的にはインデックス(添え字)という言葉も使います。ここでは通し番号をいう表現を使います。
以下のように指定して表示します。(言ってみます。)ここでは3個のデータを追加したので1番目から3番目を指定するとその値が表示されます。それ以外を指定すると値が存在しないので何も表示されません。
リストの各データを順番に取得する
例えばですが、以下のように順番に取得することが出来ます。
何か急に複雑になったと感じるかもしれませんが、順番に見ます。
変数seqをまず作ります。この変数で通し番号を管理します。このseqを1から始めて1を足しながら順番にリストの値を参照します。seq番目のデータを参照するということです。
あとは繰り返しブロックに注目して下さい。ここでデータの個数の回数分処理を繰り返します。ここではデータは3個なので3回繰り返します。
繰り返しの中で値を表示して確認出来るように1秒待っています。
処理完了後の表示が以下です。
リストの長さ(個数)、最後のリストの値の表示、変数seqの値が確認出来ます。
実際にScratchで動作確認が出来れば、リストの個数や値を変えて結果を確認してみて下さい。
その他リストの値の操作
リスト操作の各ブロックで操作します。リストへのデータの追加、挿入、削除やデータの取得が出来ます。
今回はここまでとします。今回では基本的な内容までですので次回はもう少し応用的な内容を書きます。