【Scratch入門】リストの『挿入』・『削除』をじっくり理解する
※ 当ページには【広告/PR】を含む場合があります。
2021/11/29
2022/08/19

以前の記事では、Scratchでリストを使うための基礎的な内容を解説していました。
Scratchの前身である
もしScratch2.0で作られたプロジェクトから、現行の3.0へ移行する場合、どのように機能変更があったを知らないと上手く動かない場合があります。
今回は
要素をリストへ挿入する
とりあえず何かScratchプロジェクトを新規作成して、空のリストを
「れんしゅう」

リストを作成した場合、そのリストを操作するための色々なブロックをコマンドパレットに追加されているのが分かります。
ちなみに今回は普通のリストで使いますが、リストを新規作成する際には

これは以前、
リストでも
意識的に使い分けるとプログラミングする人がより読みやすいプロジェクトにすることができます。
リストになにか要素を挿入するためのコマンドブロックは以下の2つになります。

リストの最後へ挿入
一般にリスト操作としては、リストに加えたい要素をリストの最後へ挿入するのが普通です。
単純な例をやってみましょう。
まず、以下のようなブロックコードを用意します。

リストに追加するのは何でもよいのですが、ここでは最初からあるグローバル変数の
変数
このブロックをクリックするたびに、リストの最後尾へ要素が追加されていることが分かります。
と、何気なくリストを挿入に使った以下のコマンドブロックですが、

Scratch以前のプロジェクトでは、このリストの最後に挿入するコマンドブロックが無かったようで、旧バージョンからScratchのプロジェクトに置き換えると、下のテクニックの内どちらかで対応する必要があります。

Scratch2.0以前であれば、リストへの挿入に、
最初
最後
リストの最初へ挿入
別のリストへの挿入方法としては、リストの先頭へ新しい要素を追加していく方式もあります。
以下のようなプログラムブロックを組んで、このブロックをクリックしてみましょう。

すると以下のように、要素を挿入するたびにリストの先頭へ新しい要素が挿入されて行く様子が確認できます。
ランダムなリストで挿入
Scratch2.0以前では、リストへ
乱数
これと同じ操作をScratchでもやりたい場合には、以下の3つのブロックの用法の内どれかに置き換えると良いようです。

簡単なプログラムでこのランダム挿入をやってみると、例えば以下のブロックを組んでみます。

このプログラムブロックをクリックしていくと、
というように乱数を使ったリストの挿入が簡単にできます。
使いどころは少ないですが、知っているといざという時役に立つかも...?
リストの重複を考慮して挿入
リスト挿入の応用編で、重複している要素はそのまま追加したくない、というシチュエーションがあります。
そんなときには、

のブロックを使うことで、リスト内に指定した要素が既にあるのか・無いのか判定することが可能です。
例えば、以下の
1〜5

このブロックをクリックするたびに乱数1から5までの数を挿入するのですが、既に挿入する数に重複があれば、その要素は挿入されることはありません。
要素をリストから削除する
次にリストの削除操作に関して見ていきましょう。
削除に関連するコマンドブロックは以下の2種類です。

このうち、
<リスト>の全てを削除する
リストの最初から削除
前節の挿入では、リストの最後尾へ要素が挿入されるのが通常の使い方でしたが、リストからの削除でもっとも基本となるのは、
これは単純に先頭の要素(1番目)を削除するだけですので、

を使えば良いです。
リストの最後から削除
リストの最後尾から消すためには少し工夫が必要です。
以下のコマンドブロックのどちらかの用法を利用します。

これによって、最後尾の要素から優先的に削除することが可能です。
選択して削除
最後に、要素を選択的にリストから削除する方法も知っておきましょう。
リスト内の要素を検索して、最初に検索がヒットしたリストの番号を返すのが、

というコマンドブロックになります。
なおこのブロックで検索した結果、該当の要素が無い場合には、
このブロックを使って、選択的に要素を削除してみましょう。
以下が使用例になります。
なお、リストに重複した要素が複数合った場合には、リスト内で最初に検索された要素が消去されますので、検索結果すべての要素を一括して削除したい場合にはループで繰り返すなどもう少し工夫が必要になります。
興味があれば各自練習課題として取り組んで見てください。
まとめ
今回は、Scratchのリスト操作の内、要素の「操作」・「削除」で良く利用するパターンを中心に解説していきました。
リストに使い慣れておくと、作成できるプログラムの幅が広がりますので、是非とも積極的に使いこなしていきましょう。