"BOKU"のITな日常

62歳・文系システムエンジニアの”BOKU”は日々勉強を楽しんでます

Scratch(スクラッチ)入門(8)/リスト(配列)を使ってみよう

変数をまとめて管理できる「リスト」もScratchで使えます。

今回は、それを使ってなんかやってみます。

f:id:arakan_no_boku:20200824233948p:plain

 

はじめに

 

Scratch(スクラッチ)の用語を使って説明します。

わからない場合は以下の記事を先に読んでおいてください。 

arakan-pgm-ai.hatenablog.com

 

まずはリスト(配列)を作ってみる

 

リスト(配列)は複数のデータをまとめて扱えるものです。

例えば、リスト01という名前のリストに「あいたた・・」とか、5つの文字列をセットしておいて、「リスト01の2番目を取り出す」とすると「捕まって..」の文字列をとりだせる・・みたいなもんだと思えばいいです。

f:id:arakan_no_boku:20201001224517p:plain

リストを作るには、変数ブロックパレットの「リストを作る」ボタンを使います。

f:id:arakan_no_boku:20201001223603p:plain

 押すと、以下のようなダイアログが開くので、とりあえず名前だけ登録します。

f:id:arakan_no_boku:20201001002453p:plain

リストを作ると、ブロックパレットにリストを操作するブロックが追加されます。 

f:id:arakan_no_boku:20201001003627p:plain

これらのブロックを使って、リストにデータを追加したり、削除したり、取り出したり・・とか、いろんな操作をするわけです。

 

リストを使ってなんか作ってみる

 

リストに以下の5つの言葉をセットします。

  • あいたたた!
  • 捕まってしまった!
  • やられた・・・!
  • 何するんだよ!!
  • こいつはまいった!!

そして、動き回る猫のスプライトをマウスクリックして捕まえるのですが、その時によって上記の5つの言葉のどれかを表示する。

f:id:arakan_no_boku:20201006203711p:plain

まあ、それだけのものです。

 

スクリプト全体です

 

緑の旗を押されたら・・をイベントにします。

まず、スプライトを中心(0,0)にして、右向きのデフォルトに戻してます。

フラグという変数は、ループを抜けるのに使います。

初期値を0にしておいて、1になるまで繰り返し動き続けるというわけです。

5つの言葉は、いったんリストを全削除してから、順番にセットしてます。

f:id:arakan_no_boku:20201001224821p:plain

で。

スプライトが押されたとき・・猫がマウスで捕まった時ですね・・に、どの言葉を表示するかを決めるために、1から5の範囲で乱数を取得し、フラグを1にするわけです。 

f:id:arakan_no_boku:20201001224910p:plain

こうすることで、止まります。

このループの抜け方は、結構応用が利きます。

ループを止めるのに制御ブロックパレットにある「すべてを止める」を使う手もありますが、これだとスクリプトを止めてしまうので、吹き出しが表示されませんのでね。

ループをとめて、引き続き何かをさせる場合には、今回のフラグのような変数の値をストップ条件にするわけです。

 

今回も公開してます

 

 プロジェクトを公開してます。

https://scratch.mit.edu/projects/431426127

f:id:arakan_no_boku:20201006210917p:plain

 

動かしてみたり、中を見るでスクリプトを表示してください。

今回はこんなところで。

ではでは、