"BOKU"のITな日常

BOKUが勉強したり、考えたことを頭の整理を兼ねてまとめてます。

Scratch(スクラッチ)(8)/リスト(配列)を使って「猫を捕まえろ!」ゲーム(笑)

f:id:arakan_no_boku:20200824233948p:plain

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

用語がわからないときは、以下を参照ください。

arakan-pgm-ai.hatenablog.com

今回の動作イメージ

猫を捕まえろ!ゲームを作ります。

といっても、動かすと、猫のスプライトがランダムに動き回るので、それをマウスで捕まえるというだけのものです。

うまく捕まえたら、猫が何かセリフを表示するのですが、そのセリフを、つかまるたびにランダムに変わるようにリスト(配列)を使ってみます。。

f:id:arakan_no_boku:20201006203711p:plain

スクリプト:リスト(配列)を作ってセリフをセットする

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

例えば、リスト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つの言葉をセットします。

  • あいたたた!
  • 捕まってしまった!
  • やられた・・・!
  • 何するんだよ!!
  • こいつはまいった!!
スクリプト:フラグを使ってループを抜けるのがポイント

緑の旗を押されたら開始します。

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

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

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

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

f:id:arakan_no_boku:20201001224821p:plain

で。

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

f:id:arakan_no_boku:20201001224910p:plain

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

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

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

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

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

 プロジェクトを以下URLで公開してます。

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

f:id:arakan_no_boku:20201006210917p:plain

 

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

今回はこんなところで。

ではでは、