【Scratch入門】リストの『挿入』・『削除』をじっくり理解する


※ 当ページには【広告/PR】を含む場合があります。
2021/11/29
2022/08/19
【Scratch入門】リストから数値データを使いこなす
【Scratch入門】スプライト・クローンの基本的な利用方法
合同会社タコスキングダム|TacosKingdom,LLC.

以前の記事では、Scratchでリストを使うための基礎的な内容を解説していました。

合同会社タコスキングダム|タコキンのPスクール
【Scratch入門】リストから数値データを使いこなす

Scratchのリストを使って、テキストから読み込んだ大量のデータを上手くプログラムで利用する方法を解説します。

Scratchの前身である
「Scratch2.0」でもリストの機能はありましたが、Scratchでは新しいプログラミングブロックが追加されたり、一部の機能が使われなくなったりしています。

もしScratch2.0で作られたプロジェクトから、現行の3.0へ移行する場合、どのように機能変更があったを知らないと上手く動かない場合があります。

今回は
リストの「挿入」・「削除」機能の使い方の注意点を踏まえて、使用方法を紹介していきます。


合同会社タコスキングダム|タコキンのPスクール【Pschool厳選】Scratchを学べるオンライン・駅前プログラミングスクール5選

要素をリストへ挿入する

とりあえず何かScratchプロジェクトを新規作成して、空のリストを「れんしゅう」という名前でプロジェクトで追加しておきましょう。

合同会社タコスキングダム|タコキンのPスクール

リストを作成した場合、そのリストを操作するための色々なブロックをコマンドパレットに追加されているのが分かります。

ちなみに今回は普通のリストで使いますが、リストを新規作成する際には
すべてのスプライト用このスプライトのみの2つのタイプから選べます。

合同会社タコスキングダム|タコキンのPスクール

これは以前、
【Scratch基礎 x 変数】2つの変数(グローバル変数とローカル変数)について考える で解説した、グローバル変数とローカル変数と同じような扱い方をリストでも可能となっています。

合同会社タコスキングダム|タコキンのPスクール
【Scratch入門】2つの変数(グローバル変数とローカル変数)について考える

Scratchの重要な概念であるグローバル変数とローカル変数の違いについて解説していきます。

リストでも
グローバルリストとローカルリストの2種類があります。

意識的に使い分けるとプログラミングする人がより読みやすいプロジェクトにすることができます。

リストになにか要素を挿入するためのコマンドブロックは以下の2つになります。

合同会社タコスキングダム|タコキンのPスクール

リストの最後へ挿入

一般にリスト操作としては、リストに加えたい要素をリストの最後へ挿入するのが普通です。

単純な例をやってみましょう。

まず、以下のようなブロックコードを用意します。

合同会社タコスキングダム|タコキンのPスクール

リストに追加するのは何でもよいのですが、ここでは最初からあるグローバル変数の
変数をそのまま使います。

このブロックをクリックするたびに、リストの最後尾へ要素が追加されていることが分かります。

と、何気なくリストを挿入に使った以下のコマンドブロックですが、

合同会社タコスキングダム|タコキンのPスクール

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

合同会社タコスキングダム|タコキンのPスクール

Scratch2.0以前であれば、リストへの挿入に、
最初最後が選択できるようなコマンドブロックがあったのですが、現バージョンでは無くなっています。

リストの最初へ挿入

別のリストへの挿入方法としては、リストの先頭へ新しい要素を追加していく方式もあります。

以下のようなプログラムブロックを組んで、このブロックをクリックしてみましょう。

合同会社タコスキングダム|タコキンのPスクール

すると以下のように、要素を挿入するたびにリストの先頭へ新しい要素が挿入されて行く様子が確認できます。

ランダムなリストで挿入

Scratch2.0以前では、リストへ乱数番目に挿入という機能がありましたが、現在のバージョンでは無くなってしまったようです。

これと同じ操作をScratchでもやりたい場合には、以下の3つのブロックの用法の内どれかに置き換えると良いようです。

合同会社タコスキングダム|タコキンのPスクール

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

合同会社タコスキングダム|タコキンのPスクール

このプログラムブロックをクリックしていくと、

というように乱数を使ったリストの挿入が簡単にできます。

使いどころは少ないですが、知っているといざという時役に立つかも...?

リストの重複を考慮して挿入

リスト挿入の応用編で、重複している要素はそのまま追加したくない、というシチュエーションがあります。

そんなときには、

合同会社タコスキングダム|タコキンのPスクール

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

例えば、以下の
1〜5までの乱数を要素として挿入していくことを考えましょう。

合同会社タコスキングダム|タコキンのPスクール

このブロックをクリックするたびに乱数1から5までの数を挿入するのですが、既に挿入する数に重複があれば、その要素は挿入されることはありません。


合同会社タコスキングダム|タコキンのPスクール【Pschool厳選】Scratchをしっかり学ぶためのオススメ書籍まとめ

要素をリストから削除する

次にリストの削除操作に関して見ていきましょう。

削除に関連するコマンドブロックは以下の2種類です。

合同会社タコスキングダム|タコキンのPスクール

このうち、
<リスト>の全てを削除するのブロックは、文字通りリストを一旦すべて消去して空にするコマンドです。

リストの最初から削除

前節の挿入では、リストの最後尾へ要素が挿入されるのが通常の使い方でしたが、リストからの削除でもっとも基本となるのは、リスト先頭の要素の削除です。

これは単純に先頭の要素(1番目)を削除するだけですので、

合同会社タコスキングダム|タコキンのPスクール

を使えば良いです。

リストの最後から削除

リストの最後尾から消すためには少し工夫が必要です。

以下のコマンドブロックのどちらかの用法を利用します。

合同会社タコスキングダム|タコキンのPスクール

これによって、最後尾の要素から優先的に削除することが可能です。

選択して削除

最後に、要素を選択的にリストから削除する方法も知っておきましょう。

リスト内の要素を検索して、最初に検索がヒットしたリストの番号を返すのが、

合同会社タコスキングダム|タコキンのPスクール

というコマンドブロックになります。

なおこのブロックで検索した結果、該当の要素が無い場合には、
0(ゼロ)を返します。

このブロックを使って、選択的に要素を削除してみましょう。

以下が使用例になります。

なお、リストに重複した要素が複数合った場合には、リスト内で最初に検索された要素が消去されますので、検索結果すべての要素を一括して削除したい場合にはループで繰り返すなどもう少し工夫が必要になります。

興味があれば各自練習課題として取り組んで見てください。


合同会社タコスキングダム|タコキンのPスクール【Pschool厳選】Scratchを学べるオンライン・駅前プログラミングスクール5選

まとめ

今回は、Scratchのリスト操作の内、要素の「操作」・「削除」で良く利用するパターンを中心に解説していきました。

リストに使い慣れておくと、作成できるプログラムの幅が広がりますので、是非とも積極的に使いこなしていきましょう。

参考サイト

() の () 番目 (ブロック)|Scratch wiki