【Scratch入門】リストから数値データを使いこなす


※ 当ページには【広告/PR】を含む場合があります。
2020/08/19
2022/08/19
【Scratch入門】コスチュームを変えてスプライトのアニメーション効果を付ける
【Scratch入門】リストの『挿入』・『削除』をじっくり理解する

ビッグデータやデータサイエンスという言葉がこの10年でずいぶんと一般に知られるようになった現代において、データを取り扱うというのはコンピューター科学にとってもますます重要なテーマになっています。

Scratchで大量のデータを取り扱う場合、
「リスト」という機能を使います。

今回はリストを使って、テキストからデータを読み込んでプログラミングでどう利用するのかという基礎的なところを学習します。


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

テキストデータからのインポート

まずはリストを作成しましょう。

左の
変数の項目から、リストを作るをクリックすると、新しいリストダイアログが出ますので、ここではリストのテストという名前でリストを作成します。

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

最初にリストを作成すると、リストに関するブロックとともに、空のリストがScratchの画面に追加されます。

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

次に下の内容でテキストファイルを用意します。

名前は何でもOKですが、今回は
リストのテスト.txtという名前でファイルを新規作成して、以下のテキスト内容を追加します。

            
            1 2 3 4
5 6 7 8
1 2 3 4
5 6 7 8
1 2 3 4
5 6 7 8
1 2 3 4
5 6 7 8
1 2 3 4
5 6 7 8
1 2 3 4
5 6 7 8
        
このテキストはパソコンのフォルダのどこかに保存しておきましょう。

そして、Scratchの実行画面に表示されたリストの上でマウスを右クリックすると、
読み込みというメニューが現れますので、これをクリックします。

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

すると、以下のようにファイルを選択する
ファイルのアップロードダイアログが表示されますので、先程作成しておいたリストのテスト.txtを選択して開くボタンを押します。

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

するとこのテキストファイルが読みこまれ、以下のようにリストに反映されました。

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

このリストのデータを使って、プログラムの中で利用することができます。以降ではリストの具体的な使い方を紹介していきます。

データテキストのフォーマット

具体的なブロックコーディングに話を移すまえに、Scratchに読み込むテキストデータのフォーマット(書式)についての注意点を簡単に触れておきます。

Scratchのリストは
csv形式を念頭において、テキストファイルからデータ読み込みをおこなってくれます。

csv形式のデータは、コンマ文字(
,)で区切られた代表的なテキストデータフォーマットで、例えば

            
            1列目,2列目,3列目,4列目,5列目
1列目,2列目,3列目,4列目,5列目
1列目,2列目,3列目,4列目,5列目
1列目,2列目,3列目,4列目,5列目
...以下略
        
というテキストがあったとして、Scratchが読み込むのは1列だけ...ここでいうと、1〜5列目のうちどれか一つということになります。

よって、一つのリストにすべての列を入力したリストを作成したい場合、コンマを含むデータテキストはScratchでは利用不可です。

ここでのコンマのような、データの境目を表す文字を、区切り文字(セパレーター)といいますが、コンマ以外がセパレーターであれば、Scratchはデータ区切りを無視してくれます。

ということで、上のテキストデータは、セパレーターに空白文字(
)を利用した区切り方にしています。空白文字切りのフォーマットもポピュラーですが、セパレーターに何を利用するかは個人の好みやプログラムによるので、適切に検討するのが良いと思います。


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

リストを利用したプログラミング

それではまず先程作成したリストリストのテストからデータ(数値)を読み込み、それを表示するだけのプログラムを作成してみます。

まず、
という2つの変数を作成しておきましょう。

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

これがテキストデータでの何行目、何列目の数をそれぞれ表しています。例えば今回の場合、1行目の3列目の数値は
3です。

まず行だけを上から下まで読み込んで、何かを行うためのブロックは以下のようになるでしょう。

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

このとき、
は1からテキストの最後の行が読み込まれるまで1づつ増えるようにしておきます。

また、ひとつの列を操作する場合には、以下のようなブロックで扱います。

リストのブロックである、
"リスト"の〜番目ブロックで一行分の文字が取得できます。

あとは演算にある
〜の長さでこの文字の長さを受け取り、ループを作成し、変数のを1から文字分の長さの最後になるまで1づつ増やします。

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

ということで、
'リストのテスト'の'行'番目の'列'番目の文字というブロックで、文字をひとつひとつ、抜き取っているプログラムとなります。

以上、これらのブロックを組み合わせると、

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

となり、下のようなプログラムになります。

区切り文字の処理

先程のプログラムでは、一行の文字をまるごとすべて読みこんでいたので、区切り文字(空白文字)も表示していました。

実際のプログラムにとっては区切り文字は利用しませんので、意味のある数値データだけを取り出してみましょう。

先程のブロックコードから少し中身を修正して、

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

とします。

制御のブロック
もし〜なら〜でなければ〜で、空白文字を読み込んだときと、そうでないときで条件分けしています。

その中身の条件ですが、空白文字ですので、一見なにも見えないと思いますが、きっちりと
" "(空白文字)が1文字の入っています。空ではないですので注意してください。

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

これを動かすと、

のように
区切り文字実データを分けたプログラムになります。

リストを使った簡単な応用

最後に簡単なリストデータの利用を考えてみましょう。

先程のプログラムから編集していきます。

まずは猫のスプライトとは別に、もうひとつスプライトを用意します。ここでは
スタンプという名前で追加しました。

この新しいスプライトのコスチュームを8個ほど、下の図のように適当にダウンロードしてみました。

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

コスチュームの追加方法などは前回の記事で説明しましたので、必要であればそちらを参考にしてください。

合同会社タコスキングダム|タコキンのPスクール
【Scratch入門】コスチュームを変えてスプライトのアニメーション効果を付ける

Scratchでスプライトを移動させる時にコスチューム番号をずらしてアニメーションで動かす方法を解説します。

新しい
スタンプというスプライトは、猫のスプライトの横らへんに配置しておきます。

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

ブロックコーディングの前に、コスチュームの番号を記録する
絵柄番号という変数も追加しておきます。

また、今回は
メッセージイベントを利用して、スプライトを操作してみましょうとおもいます。

下のように、
イベントの項目にあるメッセージブロックのコンボ欄の上でクリックすると、新しいメッセージが作成できますので、絵を変えるメッセージを新規作成しておきます。

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

まずは猫のスプライトからブロックコーディングしていきます。

上記までのブロックプログラムから以下のように修正します。

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

ポイントとしては、コスチューム番号をデータとして受け取り、その値を
絵柄番号に設定し、絵を変えるメッセージをイベントとして送っています。

次に
スタンプのスプライトに切り替えて、ブロックを仕込んでいきます。

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

こちらは先程設定した、
絵を変えるメッセージを受け取ったら動くプログラムです。

以上で、リストからデータを受け取り、その値でコスチュームを操作しているプログラムになってると思います。


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

まとめ

Scratchでテキストデータを扱う場合に、リストの使い方をマスターすることが重要です。

リストを使うことで、より応用的なプログラミングも可能になります。

これを機会に積極的に利用していっても面白いと思います。