キャリまが

30代で未経験からグローバル企業に転職した筆者が、英語、お金、子育てなどについて語るブログ

Scratch Jr.作例「うちゅうゆうえいゲーム」後篇(2/2):「条件分岐っぽいもの」を作る

この記事は「うちゅうゆうえいゲーム前編」の続きです。

こんにちはキャリまが管理人のヘルペスもちです。
最近は2020年からの小学校での必修化に向け、子ども向けのプログラミングソフト「Scratch Jr.」でゲームを作っています。

これまで作ったゲームは「Scratchで作ったゲームまとめ」にまとめていますので、是非ご覧ください。

さて、今回作っているのは「うちゅうゆうえいゲーム」です。
完成形はこちら↓




さて後編のポイントはズバリ「条件分岐」です!
Scratch Jr.には条件分岐をプログラムする機能はありませんが、工夫して「条件分岐っぽいもの」を作りたいと思います。

前編までで、スタートボタン、やじるし、宇宙飛行士のプログラムが終わりました。

続きからいってみましょう!


ほしx2のプログラム

次はほしのプラグラムです。
今回のゲームでは、宇宙空間のほしに宇宙飛行士がぶつかると、ほしがコントロールパネル上のボックスに移動します。

移動といっても、片方のほしが消えると同時にもう片方が表示されて、「移動したように見えてる」だけです。

というわけで、まず1つ目のプログラムはこちら。
キャラクターがぶつかったら消えて、メッセージを送信します。


もう片方のプログラムはこちら。
まず最初に消えてる状態で、メッセージをうけとったら現れます。


ほしのプラグラムは以上です。


ロケットのプログラム。いよいよ条件分岐させてみる

さぁ、いよいよ今回のゲームの目玉である「条件分岐っぽいもの」を作ります。

プログラミングにおける条件分岐とは、ある条件に基づいて異なった何通りかの結果を返すようにする事です。

今回のゲームで言うと、宇宙飛行士がほしを取ってからロケットにたどり着けばクリアでしたが、ほしを取らずにたどり着くと、ゲームオーバーとなります。

もう少し詳しく書くと、
宇宙飛行士がロケットにぶつかった時に

  • ほしを取っていたら → クリア画面に遷移
  • ほしを取っていなかったら →ほしがたりない!画面に遷移

という、2つの異なる結果になるようにしたいワケですね。

一般的なプログラミング言語であれば「IF式」なんてものがあって、ほしを取っているかどうかを「True」「False」で判定したりするわけですが、Scratch Jr.にはそんな機能は無いので、別の方法で「ほしを取っているかどうか」を判定します。

条件判定用のスイッチを作る

まず、新規キャラクターでこのような小さなドットを作成します。
色は、背景の宇宙空間に紛れるに紺色にしました。

このドットを、画面上の宇宙空間上のほしの下に重ねて配置します。

このドットが、ほしが取られているかどうかを判定するスイッチになります。

ろけっとのプログラム

つづいてろけっとにプログラミングします。
ろけっとがアクションを起こすのは宇宙飛行士がぶつかった時だけですから、「キャラクターがぶつかったら」と、これまで使っていない色のメッセージの送信と、「やったー!」画面への遷移をプログラムします。


このメッセージがミソです。

条件判定用スイッチのプログラム

つづいて先ほどほしの下に重ねて配置したドット(条件判定用のスイッチ)にプログラムしていきます。

まず、このドットは普段は消えている必要がありますので、見た目ブロックを使って消します。


そして、先ほどろけっとにプログラムした色のメッセージを受け取ったら、姿を表すようにし、さらに「キャラクターにぶつかったら」、「ほしがたりない!」画面に遷移するようにします。


さて、これで「ほしを取ったかどうか」の条件判定プログラムが完成しました。

ながれはこうですね。

宇宙飛行士がろけっとにぶつかる

ドットが表れる

ほしが取られていなければ、ほしにドットがぶつかって「ほしがたりない!」画面へ

or

ほしが取られていれば、何も起こらず「やったー!」画面へ

というわけです。

ろけっとのプログラムではメッセージを送った後に、「やったー!」画面に遷移するようになっていましたが、メッセージを送った先でドットがほしにぶつかったら、その時点で「ほしがたりない!」画面に遷移してゲームが終わるというわけです。
メッセージを送った先で何も起こらなければ、そのまま「やったー!」画面に遷移して終わります。

これで完成です!

試しに動かしてみましょう。
どうです?
ちゃんと動きましたか?

Scratch Jr.の限られた機能でも条件分岐が再現できました。


まとめ:条件分岐はプログラミングの基本中の基本

条件分岐はプログラミングの基本中の基本ですが、ロジックがしっかりしてないと思った通りの結果が得られません。

逆に言えば、小学生が条件分岐を適切にプログラムできるようになれば、かなり論理的な思考力のトレーニングになると言えます。

プログラミングに興味をもったお子さんには、D-SCHOOLオンライン のようなオンラインで学べる講座がオススメです。
1,980円の買い切りコースからあるので、ちょっと体験してみるのにはピッタリのスクールとなっています。
f:id:herpes_carrier:20181017232933p:plain:w640


というわけで2020年の必修化に向けて、僕もますます勉強していこうと思います。

それでは〜。


スポンサーリンク