Scratch3.0入門 「リスト」関連のブロック 使い方を実例付きで解説

リスト関連のブロックの実例

 本記事では、Scratch(スクラッチ)3.0で使える「リスト」関連のブロックを実例付きで分かりやすく解説しております。

 「リスト」関連のブロックは、複数の値を格納することができるブロックです。

 「リスト」ブロックに値を追加したり、不要な値を削除したり、指定した値を別の値に入れ替えたり、ほかにも色々便利なブロックが用意されいます。

 以下でもっと具体的に解説します。

 Scratch(スクラッチ)のプログラミングを学ぶ上で、個々のブロックの本質を理解することはとても大事なことだと考えます。

 お役に立てれば幸いです。

 Scratch(スクラッチ)の基本的なことや全般的な内容に関しましては以下の別記事をご覧ください。

「リスト」関連のブロックの解説(Scratch3.0)

 本記事で解説する内容や押さえておきたいポイントは以下のとおりです。

  1.  リストとは
  2.  リストの作り方
  3.  リスト関連ブロックのご紹介

 具体的な使い方を実例をまじえて解説します。

リストとは

 リストとは、複数の箱が入れられる大きな器と考えてください。

 

「変数」ブロックは1つの値を入れる箱

 「変数」ブロックは、お好きな値を入れることができますのでとても便利ですね。

 「変数」ブロックをご存知ない方は、別記事「「変数」関連のブロック 使い方を実例付きで解説」で解説しておりますので、ご利用ください。

 でも「変数」ブロックには1つの値だけしか入れることができません

 もしも入れたい値が複数ある場合は、複数の「変数」ブロックを作成する必要があります。

「リスト」ブロックには複数の値を入れられる

 「リスト」ブロックには、複数の値を入れることが可能です。

 「リスト」ブロックに値を入れますと、基本的に入れた順番に並びます。つまり、最初に入れた値を先頭にして、次々と後ろに追加されることになります。

 また、各値には連番が付与されまして、先頭から何番目にある値なのかが分かるようになっています。

 番号を指定して目的の値を確認することも可能です。

 さらに、付与された連番を利用して、値の置き換えや削除、指定した番号の値の次に値を挿入することもできます。

 「リスト」ブロックの中に、特定の値が入っているか、特定の値が何番目に入っているか、現在何個の値が格納されているか、などを確認するブロックも用意されています。

 ずらずらと書いてしまいましたので、箇条書きでまとめました。

  • 「リスト」ブロックには複数の値を入れられる
  • 値を追加すると基本的に入れた順番に並ぶ
  • 「リスト」ブロック内の各値には番号が付いている
  • 各値についている番号を使用して、値を確認したり削除したりできる
  • 指定した値を別の値に変更できる
  • 値の次に別の値を入れることもできる
  • 「リスト」ブロック内の文字列検索ができる
  • 「リスト」ブロック内に何個の値が入っているか確認できる

 後ほど「リスト」関連のブロックをご紹介しますので、その際にもう少し詳しく解説させてください。

「リスト」ブロックの作り方・消し方・リスト名の変え方

 実際に「リスト」ブロックを作ってみましょう。

 さらに、作った「リスト」ブロックの名前を変えたり、削除もしてみます。

リストの作り方

 果物の名前を入れるリスト「くだもの」を作ってみます。

 ブロックパレットの「変数」カテゴリの下の方にあります「リストを作る」という四角いボタンを押して下さい。

リストを作るボタンを押す

 画面が青くなって下のメニューが表示されます。

新しいリストを作るウインドウ

 「新しいリスト名」の入力欄にリスト名を入力して「OK」ボタンを押しますと、入力したリスト名の値ブロックができあがります。

 リスト名を「くだもの」と入力して「OK」ボタンを押しました。

くだものリストを作る

※「すべてのスプライト用」と「このスプライトのみ」は「すべてのスプライト用」を選択することをおすすめします。「このスプライトのみ」を選択しますと、別のスプライトで同じ名前の「リスト」ブロックを作ることが可能となりますので、慣れてない方が利用されますとトラブルの元になります。とはいいましても、分かりやすくなる場合もありますので、「このスプライトのみ」は理解できている方のみご利用になられた方が良いと考えます。

 ブロックパレット内に「くだもの」ブロックが作られているのが確認できます。

くだものリストが作られた

 「くだもの」ブロックの左側についている「✔(チェック)」は、付けることでステージエリア内に「リスト」ブロックの値が常に表示されるようになります。

ステージエリア内にリストが表示される

 不要でしたらチェックを外してください。ステージエリア内のリスト表示は消えます。

リストの消し方

 「リスト」ブロックを消す場合は、ブロックパレット内にある消したい「リスト」ブロックにマウスポインタ―を置いて右クリックします。

 下図のメニューが出ますので「リスト「xx」を削除」を選択しますと、「リスト」ブロックが消えます。

リストを削除するメニュー

 削除した「リスト」ブロックをすでにプログラム内で使用しているは、一緒に削除されます。

※リストを2カ所以上で利用している場合は、ブラウザ上部に消してよいかの確認ウインドウが表示されますので、「OK」ボタンを押すことで消えます。

後ほど解説しますリスト関連ブロックでもリストの削除は可能ですが、「リスト」ブロックで削除する方が分かりやすく安全だと思います。

リスト名の変え方

 「リスト」ブロックを作ったあとで名前が気に入らなくなったり、プログラムを作っていくうちに都合が悪くなった場合は、いつでもリスト名を変えることができます。

 「リスト」ブロックを作ってすぐでしたら、消して作り直せばよいのですが、プログラム内ですでに使っている場合は、修正が大変ですよね。

 場合によっては、修正ミスでプログラムの動きがおかしくなる可能性もあります。

 リスト名を変える場合は、ブロックパレット内の名前を変えたい「リスト」ブロックにマウスポインタ―を置いて右クリックします。

 下図のメニューが出ますので「リスト名を変更」を選択してください。

リスト名を変更するメニュー

 「リスト名を変更」ウインドウが表示されますので、新しいリスト名を入力して「OK」ボタンを押して下さい。

 「くだもの」を「果物」に変えてみました。

果物に変えてみる

 これで、ブロックパレットの変数名もスクリプトエリア内のすでに使っている「変数」ブロックの名前も変えることができます。

後ほど解説しますリスト関連ブロックでもリストの名前を変えることは可能ですが、「リスト」ブロックで行う方が分かりやすく安全だと思います。

「リスト」関連ブロックのご紹介

 リスト関連のブロックは、上でご紹介しました値ブロックの「リスト」ブロックを含めて12種類あります。

 順に解説していきます。

「リスト」ブロック

リストブロック

 「リスト」ブロックには複数の値を格納することが可能です。

 

 「リスト」ブロックの形状は値ブロックです。

 他の値ブロックとは異なってまして、ブロックに格納されているリストの値を教えてくれるだけでなく、お好きな値を格納することができます。

 格納できる文字は、半角文字、全角文字、記号などScratch(スクラッチ)で扱える文字でしたらなんでも大丈夫だと思います。

 全ての文字を試したわけではありませんが、今まで色んな値を入れていて、おかしな表示になったことはありません。

 「リスト」ブロックに値を入れる場合は、次にご紹介しますブロックを使用します。

「○を△に追加する」ブロック

○を△に追加するブロック

 「○を△に追加する」ブロックは、○部分に指定した値を△部分に指定したリストに入れることができます。

 「○を△に追加する」ブロックはスタックブロックです。ブロックの上下に色んなブロックを重ねられます。

 ブロックに指定可能な値は以下のとおりです。

指定する場所
○を△に追加するブロックのオプション1(←赤枠部分)
入力方法
手動、値ブロック
指定する内容
リストに入れる値をセットする
単位
なし
入力する文字種
半角文字、全角文字、記号など何でも
備考
特記無し
指定する場所
○を△に追加するブロックのオプション2(←赤枠部分)
入力方法
プルダウンメニュー
指定する内容
リスト名
リスト名を変更
リスト「xx」を削除する
単位
なし
入力する文字種
なし
備考
特記無し

 プルダウンメニューを開きますと、現在使用可能な「リスト」ブロックの一覧が表示されます。

リストを選択するプルダウンメニュー

 表示された中から目的のリストを選択してください。

※「リスト名を変更」と「リスト「xx」を削除」は使用しません

 ブロック内の左の○部分に値を入れますと、「リスト」ブロックにその値が入ります

 「リストの作り方」のところで作成した「くだもの」ブロックに「リンゴ」と「みかん」を入れてみましょう。

くだものリストにリンゴとみかんを追加するプログラム

 ステージエリア内に表示されている「くだもの」リストブロック内に、「リンゴ」と「みかん」が表示されています。

 「リンゴ」には1番、「みかん」には2番の番号が付いていますね。

くだものリストに2つの値が入った

「△の○番目を削除する」ブロック

△の○番目を削除するブロック

 「△の○番目を削除する」ブロックは、リストに格納されている値の内で、指定した値を削除(リストから除外)することができます。

 「△の○番目を削除する」ブロックはスタックブロックです。ブロックの上下に色んなブロックを重ねられます。

 ブロックに指定可能な値は以下のとおりです。

指定する場所
△の○番目を削除するブロックのオプション1(←赤枠部分)
入力方法
プルダウンメニュー
指定する内容
リスト名
リスト名を変更
リスト「xx」を削除する
単位
なし
入力する文字種
なし
備考
特記無し
指定する場所
△の○番目を削除するブロックのオプション2(←赤枠部分)
入力方法
手動、値ブロック
指定する内容
削除したい値の番号をセットする
単位
なし
入力する文字種
半角数字
備考
特記無し

 プルダウンメニューを開いて、削除したい値が入っているリスト名を選択します。

リストを選択するプルダウンメニュー

※「リスト名を変更」と「リスト「xx」を削除」は使用しません

 ブロック内の左の○部分には、上で指定した「リスト」ブロック内の削除したい値に付いている番号を入力します。

 例えば、3つの果物の値が入っている「くだもの」リストブロックがあったとします。

3つの値が入っているリスト

 「△の○番目を削除する」ブロックでその中の2番目の値「いちご」を削除したい場合は、○番目の指定で「2」(半角数字)を入れます。

△の○番目を削除するブロックで値を削除する

 この状態で「△の○番目を削除する」ブロックが実行されますと、「リスト」ブロックから「いちご」が削除されます。

リストからいちごが削除された

「△のすべてを削除する」ブロック

△のすべてを削除するブロック

 「△のすべてを削除する」ブロックは、指定したリストに現在入っている値を全て削除することができます。

 「△のすべてを削除する」ブロックはスタックブロックです。ブロックの上下に色んなブロックを重ねられます。

 ブロックに指定可能な値は以下のとおりです。

指定する場所
△のすべてを削除するブロックのオプション(←赤枠部分)
入力方法
プルダウンメニュー
指定する内容
リスト名
リスト名を変更
リスト「xx」を削除する
単位
なし
入力する文字種
なし
備考
特記無し

上で説明しました「△の○番目を削除する」ブロックでも、番号1を削除する操作をリストに入っている値の個数だけ繰り返せば全部の値を消すことは可能ですね。

 でも「△のすべてを削除する」ブロックを使用しますと、指定したリストに入っている値を一度に全部消すことが可能です。

 例えば、現在5個の値が入っている「くだもの」リストがあったとします。

5個の値が入っているくだものリスト

 

 「(くだもの)のすべてを削除する」ブロックを使用してイッキに全て消してみましょう。

くだものリスト内の値をイッキに消す

 キレイに消すことができました。

空になったリスト

「△の○番目に◇を挿入する」ブロック

△の○番目に◇を挿入するブロック

 「△の○番目に◇を挿入する」ブロックは、指定したリストのお好きな場所にお望みの値を入れることができます。

 「△の○番目に◇を挿入する」ブロックはスタックブロックです。ブロックの上下に色んなブロックを重ねられます。

 ブロックに指定可能な値は以下のとおりです。

指定する場所
△の○番目に◇を挿入するブロックのオプション1(←赤枠部分)
入力方法
プルダウンメニュー
指定する内容
リスト名
リスト名を変更
リスト「xx」を削除する
単位
なし
入力する文字種
なし
備考
特記無し
指定する場所
△の○番目に◇を挿入するブロックのオプション2(←赤枠部分)
入力方法
手動、値ブロック
指定する内容
値を入れたい場所を番号で指定する
単位
なし
入力する文字種
半角数字
備考
特記無し
指定する場所
△の○番目に◇を挿入するブロックのオプション3(←赤枠部分)
入力方法
手動、値ブロック
指定する内容
指定した場所に入れる値を指定する
単位
なし
入力する文字種
半角文字、全角文字、記号など何でも
備考
特記無し

 下のような5個の値が入ったリスト「くだもの」があります。

5個の値が入っているくだものリスト

 3番目に「みかん」が入っていますが、この場所に「メロン」を入れてみます。

3番目にメロンを入れるブロック

 上のブロックが実行されますと、リストの3番目に「メロン」が入りまして、「みかん」以降は1つずつずれました。

リストの3番目にメロンが追加された

 このように、「△の○番目に◇を挿入する」ブロックで指定した場所に値を入れますと、今まで入っていた値は下にずれます。

 「○を△に追加する」ブロックでリストに値を入れますと、値はリストの最後に追加されます。

 でも、「△の○番目に◇を挿入する」ブロックを使って1番目に値を挿入するようにしますと、追加した値を上から挿入することもできますね

「△の○番目を◇で置き換える」ブロック

△の○番目を◇で置き換えるブロック

 「△の○番目を◇で置き換える」ブロックは、指定したリストに現在入っている値をお好きな値で置き換えることができます。

 「△の○番目を◇で置き換える」ブロックはスタックブロックです。ブロックの上下に色んなブロックを重ねられます。

 ブロックに指定可能な値は以下のとおりです。

指定する場所
△の○番目を◇で置き換えるブロックのオプション1(←赤枠部分)
入力方法
プルダウンメニュー
指定する内容
リスト名
リスト名を変更
リスト「xx」を削除する
単位
なし
入力する文字種
なし
備考
特記無し
指定する場所
△の○番目を◇で置き換えるブロックのオプション2(←赤枠部分)
入力方法
手動、値ブロック
指定する内容
置き換えたい値の場所を番号で指定する
単位
なし
入力する文字種
半角数字
備考
特記無し
指定する場所
△の○番目を◇で置き換えるブロックのオプション3(←赤枠部分)
入力方法
手動、値ブロック
指定する内容
置き換えたい値を指定する
単位
なし
入力する文字種
半角文字、全角文字、記号など何でも
備考
特記無し

 下のような5個の値が入ったリスト「くだもの」があります。

5個の値が入っているくだものリスト

 3番目に「みかん」が入っていますが、これを「メロン」に入れ替えてみましょう。

リスト内の3番目をメロンにする

 上のブロックが実行されますと、リストの3番目に「メロン」が入ります。

 「さくらんぼ」はリスト内にいなくなりました。

 「さくらんぼ」を「メロン」に置き換えるだけですので、リスト内の値の個数は変わりません。

「△の○番目」、「△中の○の場所」、「△の長さ」ブロック

△の○番目ブロック
△中の○の場所ブロック
△の長さブロック

 「△の○番目」、「△中の○の場所」、「△の長さ」ブロックは、指定したリストから目的の値を表示したい場合に利用します。

 3つのブロックは値ブロックです。ブロックに格納されている値を教えてくれます。

 ブロックに指定可能な値は以下のとおりです。

指定する場所
△の○番目ブロックのオプション1
△中の○の場所ブロックのオプション1
△の長さブロックのオプション1(←赤枠部分)
入力方法
プルダウンメニュー
指定する内容
リスト名
リスト名を変更
リスト「xx」を削除する
単位
なし
入力する文字種
なし
備考
特記無し
指定する場所
△の○番目ブロックのオプション2(←赤枠部分)
入力方法
手動、値ブロック
指定する内容
目的の値の場所を番号で指定する
単位
なし
入力する文字種
半角数字
備考
特記無し
指定する場所
△中の○の場所ブロックのオプション2(←赤枠部分)
入力方法
手動、値ブロック
指定する内容
探したい値を指定する
単位
なし
入力する文字種
半角文字、全角文字、記号など何でも
備考
特記無し

 「△の○番目」ブロックは、リスト内の各値に付いている番号を指定して目的の値を利用する場合に使用します。

 例えば、リスト内の3番目に入っている「みかん」をネコスプライトに叫んでもらうには、以下のプログラムを作成します。

5個の値が入っているくだものリスト
リスト内の値を利用したプログラム

 「△中の○の場所」ブロックは、指定した値がリスト内の何番目に入っているか確認することができます。

 例えば、リストに5個のくだものが入っている状態で、「△中の○の場所」ブロックを使って「いちご」が何番目に入っているか確認してみましょう。

5個の値が入っているくだものリスト
リストから指定した値を探す

 「いちご」は2番目に入っていますので、「△中の○の場所」ブロックの値は「2」になりました。

 もし指定した値がリスト内に無かった場合は、「△中の○の場所」ブロックの値は「0」になります。

リスト内に探す値が無い場合

 「スイカ」はリスト内にありませんので、「△中の○の場所」ブロックの値は「0」(ゼロ)です。

 「△の長さ」ブロックは、指定したリストに何個の値が格納されているかが表示されます。

 「くだもの」リストに5個の値が入っている状態で、「△の長さ」ブロックを使ってみました。

5個の値が入っているくだものリスト
リスト内の値の個数を表示する

 「5」と表示されました。

「△に○が含まれる」ブロック

△に○が含まれるブロック

 「△に○が含まれる」ブロックは、指定したリストに指定した文字列が含まれているか確認します。

 「△に○が含まれる」ブロックは真偽ブロックです。ブロックに書いてある条件を確認します。

 ブロックに指定可能な値は以下のとおりです。

指定する場所
△に○が含まれるブロックのオプション1(←赤枠部分)
入力方法
プルダウンメニュー
指定する内容
リスト名
リスト名を変更
リスト「xx」を削除する
単位
なし
入力する文字種
なし
備考
特記無し
指定する場所
△に○が含まれるブロックのオプション2(←赤枠部分)
入力方法
手動、値ブロック
指定する内容
確認したい値を指定する
単位
なし
入力する文字種
半角文字、全角文字、記号など何でも
備考
特記無し

 「△に○が含まれる」ブロックは、指定した値がリスト内に入っているか確認することができます。

 下のプログラムは、果物の名前をひらがなで入力してもらって、リスト内にその果物があるか確認します。

 あった場合はネコスプライトが「(入力した果物名)みつけたー!」、無かった場合は「(入力した果物名)はなかった・・・」と言います。

リスト内から値を探すプログラム

「リスト△を表示する」と「リスト△を隠す」ブロック

リスト△を表示するブロック
リスト△を隠すブロック

 最後は「リスト△を表示する」ブロックと「リスト△を隠す」ブロックです。

 ブロックパレット内の「リスト」ブロックの左側に「✔(チェック)」がありまして、チェックを入れますとリストの値がステージエリア内に表示されることは上の方で説明しました。

 「リスト△を表示する」ブロックと「リスト△を隠す」ブロックは、それをプログラム内で行うためのブロックになります。

 つまり、「リスト△を表示する」ブロックが実行されますとステージエリア内に変数の値が表示され、「リスト△を隠す」ブロックが実行されますと表示されていた値が消えます。

まとめ

 これからScratch(スクラッチ)を始められる方は、リストブロックの必要性を実感できないかもしれませんが、プログラミングに慣れてくるといつかきっとリストブロックのありがたみが分かるようになると思います。

 リスト関連のブロックの使い方を理解して楽しいプログラムを作ってみましょう!

 本サイトでは他にもScratch(スクラッチ)に関する記事を公開しております。

 よろしかったらご利用ください。

 最後までお読みいただきありがとうございました!

(参考)

Japanese Scratch-Wiki 公式サイト

困ったときはいつもこのサイトを参照しています

コメント