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


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


ビッグデータやデータサイエンスという言葉がこの10年でずいぶんと一般に知られるようになった現代において、データを取り扱うというのはコンピューター科学にとってもますます重要なテーマになっています。
Scratchで大量のデータを取り扱う場合、
「リスト」 という機能を使います。
今回はリストを使って、テキストからデータを読み込んでプログラミングでどう利用するのかという基礎的なところを学習します。


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

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



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

合同会社タコスキングダム|蛸壺の技術ブログ


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

合同会社タコスキングダム|蛸壺の技術ブログ


次に下の内容でテキストファイルを用意します。
名前は何でも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の実行画面に表示されたリストの上でマウスを右クリックすると、
読み込み というメニューが現れますので、これをクリックします。

合同会社タコスキングダム|蛸壺の技術ブログ


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

合同会社タコスキングダム|蛸壺の技術ブログ


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

合同会社タコスキングダム|蛸壺の技術ブログ


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

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



具体的なブロックコーディングに話を移すまえに、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はデータ区切りを無視してくれます。
ということで、上のテキストデータは、セパレーターに空白文字(
)を利用した区切り方にしています。 空白文字切りのフォーマットもポピュラーですが、セパレーターに何を利用するかは個人の好みやプログラムによるので、適切に検討するのが良いと思います。


合同会社タコスキングダム|蛸壺の技術ブログ【Pschool厳選】Scratchをしっかり学ぶためのオススメ書籍まとめ

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



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

合同会社タコスキングダム|蛸壺の技術ブログ


これがテキストデータでの何行目、何列目の数をそれぞれ表しています。 例えば今回の場合、1行目の3列目の数値は
3 です。
まず行だけを上から下まで読み込んで、何かを行うためのブロックは以下のようになるでしょう。

合同会社タコスキングダム|蛸壺の技術ブログ


このとき、
は1からテキストの最後の行が読み込まれるまで1づつ増えるようにしておきます。
また、ひとつの列を操作する場合には、以下のようなブロックで扱います。
リストのブロックである、
"リスト"の〜番目 ブロックで一行分の文字が取得できます。
あとは演算にある
〜の長さ でこの文字の長さを受け取り、ループを作成し、変数の を1から文字分の長さの最後になるまで1づつ増やします。

合同会社タコスキングダム|蛸壺の技術ブログ


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

合同会社タコスキングダム|蛸壺の技術ブログ


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

区切り文字の処理



先程のプログラムでは、一行の文字をまるごとすべて読みこんでいたので、区切り文字(空白文字)も表示していました。
実際のプログラムにとっては区切り文字は利用しませんので、意味のある数値データだけを取り出してみましょう。
先程のブロックコードから少し中身を修正して、

合同会社タコスキングダム|蛸壺の技術ブログ


とします。
制御のブロック
もし〜なら〜でなければ〜 で、空白文字を読み込んだときと、そうでないときで条件分けしています。
その中身の条件ですが、空白文字ですので、一見なにも見えないと思いますが、きっちりと
" " (空白文字)が1文字の入っています。 空ではないですので注意してください。

合同会社タコスキングダム|蛸壺の技術ブログ


これを動かすと、



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

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



最後に簡単なリストデータの利用を考えてみましょう。
先程のプログラムから編集していきます。
まずは猫のスプライトとは別に、もうひとつスプライトを用意します。 ここでは
スタンプ という名前で追加しました。
この新しいスプライトのコスチュームを8個ほど、下の図のように適当にダウンロードしてみました。

合同会社タコスキングダム|蛸壺の技術ブログ
コスチュームの追加方法などは前回の記事で説明しました ので、必要であればそちらを参考にしてください。

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

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



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

合同会社タコスキングダム|蛸壺の技術ブログ


ブロックコーディングの前に、コスチュームの番号を記録する
絵柄番号 という変数も追加しておきます。
また、今回は
メッセージイベント を利用して、スプライトを操作してみましょうとおもいます。
下のように、
イベント の項目にあるメッセージブロックのコンボ欄の上でクリックすると、 新しいメッセージ が作成できますので、 絵を変える メッセージを新規作成しておきます。

合同会社タコスキングダム|蛸壺の技術ブログ


まずは猫のスプライトからブロックコーディングしていきます。
上記までのブロックプログラムから以下のように修正します。

合同会社タコスキングダム|蛸壺の技術ブログ


ポイントとしては、コスチューム番号をデータとして受け取り、その値を
絵柄番号 に設定し、 絵を変える メッセージをイベントとして送っています。
次に
スタンプ のスプライトに切り替えて、ブロックを仕込んでいきます。

合同会社タコスキングダム|蛸壺の技術ブログ


こちらは先程設定した、
絵を変える メッセージを受け取ったら動くプログラムです。
以上で、リストからデータを受け取り、その値でコスチュームを操作しているプログラムになってると思います。


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

まとめ



Scratchでテキストデータを扱う場合に、リストの使い方をマスターすることが重要です。
リストを使うことで、より応用的なプログラミングも可能になります。
これを機会に積極的に利用していっても面白いと思います。