4.1 場合分け(1)- 各場合に実行する命令が1つの時

M先生
新しくproject3という名前のプロジェクトを作ってもらえるかな.今まで使ってきた車も用意しておいてね.
Sくん
はい.
M先生
まずは道路を往復する車を作ってみよう.道の端に車がくると,折り返して走り続けるようにしてみようか.
Tさん
すごい.そんなことができるんですね.
M先生
先に必要な部品を作ってしまおう.まず横向きの直線道路を描いてくれるかい?後で必要になるから,センターラインも入れておこう. 車は青ハロを使って横向きにしておいてね.
Sくん
こんな感じですかね.

M先生
いいね.次は車を少し改造するよ.道の端に来たかどうかを判別するために車に「 センサー 」を付けよう.
Sくん
えっ,また車を描くのかー.面倒くさいなー.
Tさん
描き直しハロを使えば,センサーだけを描き足すことができるよ.
Sくん
おっと.そうか.

M先生
センサーは車のボディの色と違う色にするのがポイントだよ.詳しくは後で説明するけれど,こうしておけば車が道の端に来たかどうか検知できるんだ.
Sくん
センサーをつけ終わりました.

M先生
よし,これで部品は全部そろったね.次は完成させたい車の動きをしっかり確認してみよう.
Tさん
言葉で説明するとしたら,「車は道に沿って直進し,道の両端に来たらそれまで走っていた方向と逆向きに反転する」かな.
M先生
言葉だけで説明するのは難しいね.図も一緒に描くと分かりやすいかな.
Sくん
こんな感じですね.

M先生
いいね.

M先生
さて,いよいよプログラミングをしてみよう.まず,車に「道路を往復する」という名前のスクリプトを作ってくれるかい?
Sくん
はい.できました.

M先生
まずは,車の動きを整理してみようか.
Sくん
はい.
M先生
道路の端に車が来た場合はどのような命令が必要かな?
Tさん
180度回転させればよいと思います.
M先生
じゃあ,車が道路の端以外ところにある場合はどうしたらいいかな?
Sくん
進めればよいのではないでしょうか.
M先生
そうだね,車が道路の端に来た場合とそれ以外の場合で処理を変えればよいんだ. ではプログラムを組み立てていこうか.まずは繰り返しボタンの右にある,四角形のアイコンをドラッグしてみて.

Sくん
なにやら,オブジェクトが出てきました.
M先生
これを「 場合分けタイル 」というんだ.スクリプトに入れてみて.
Sくん
できました.

M先生
この場合分けタイルを使うと,何かを調べた結果によって実行する命令を変えることができるんだ.
Sくん
「何かを調べて」というのと,「何もしない」となっている部分を埋めればいんですね.
M先生
その通り.
M先生
じゃあ,何を調べたらいいかな?
Tさん
「車が道路の端に来たかどうか調べる」ことがしたいですね.
Sくん
うーん,そんなタイルはどのカテゴリにもありませんね.
M先生
そこでセンサーの出番だね.センサーを使えるとすると,どのようなことを調べればいいかな?
Sくん
「センサーが道の端を検知したかどうか調べる」ですね.
Tさん
でも「センサーが道の端を検知したかどうか調べる」というタイルもないですね.
M先生
「センサーが道の端を検知したかどうか調べる」ことをもっと具体的にしなければいけないんだ.今回は「色」による判定を使ってみよう. 「 テストカテゴリ 」に「 色に触れているか 」タイルがあるだろう.

Sくん
なるほど.このタイルを使えば「センサー(青色)が,道以外の部分の色(灰色)に触れているか」を調べることができるんだ.
M先生
では実際にやってみよう.「色に触れているか」タイルを「何かを調べて」のところに入れてみて.
Sくん
場合分けタイルの文字が変わりました.

M先生
次に色の設定をしよう.まず左側の色から.左側の色の部分をクリックすると,色を選ぶスポイトが表示されるよね.

Sくん
このパレットから色を選べばいいんですね.センサーの色にするのが微妙で難しいなー.
Tさん
そんなことせずに,センサーの色をスポイトで選択すればいいじゃない.こうやって.

Sくん
おっ.鋭いねー.
M先生
あとは右側も同じ要領で,道路の外の色(ワールドの色)を選択すればいいね.
Sくん
残るは命令ですね.反転させるためには回すタイルを使えばいいから....あれ?
Tさん
先生,私の方はできました.

Sくん
どれどれ.
Tさん
ちょっとー.カンニングしないでよ.
Sくん
ケチだなー.

「考えてみよう!」

色に触れているかの判定タイルの左側の色を車のボディの色に変更すると,車がどんな動きをするようになるか予想してみましょう.



「考えてみよう!」

車のセンサーが道路と地面の両方に触れるような位置において,「道路を往復する」というスクリプトを繰り返し実行するとどうなるでしょうか.予想してみましょう.



「考えてみよう!」

車を進めるドット数を大きくしてみましょう.ドット数がある値以上になると,車が道路を往復できなくなります. なぜそうなるのか説明してみましょう.