6.2 他の変数を使った現在値の変更(2)- 差分指定

M先生
さて,ハンドルで車の向きが変えられるようになったけれど,この先どうしたらいいかな?
Sくん
左右に移動できるようにしないと,操縦できているようには見えませんね.
Tさん
そうね.どうすればいいんだろう.
M先生
分かりやすいように,さっき作った「向き」に関するタイルは外しておこうか.

Sくん
問題を単純化して考えるってことですね.
Tさん
ハンドルを右に切ったら右に進み続けて,ハンドルを左に切ったら左に進み続けるようにすればいいんじゃない?
Sくん
こうすればいいのかな?

Sくん
あれ,変だな.車が画面の左端に移動してしまったよ.
M先生
それではまずいな.このプログラムだと,車のX座標はいくつからいくつまでの値になるか分かるかい?
Tさん
ハンドルの向きと同じだから,-180から180までですね.
Sくん
うーん.
M先生
じゃあ,ヒントを出そうか.車を右に動かしたいとするね. X座標を使って,しかもX座標に数値を足すだけで動かしたい時はどうする?
Sくん
こうすればOKですね.

M先生
じゃあ,同じように左に動かしたいときは?
Sくん
こうですかね.マイナスを足せばいいですね.

M先生
じゃあ,動かしたくないときは?
Sくん
プログラムを作らなければいいんじゃないですか?
Tさん
なに言ってるの?座標に0を足すようにすれば動かないよ.

Sくん
あ,そっか.
M先生
じゃあ,今度はハンドルの向きの値に注目してみようか.ハンドルを右に切ると,ハンドルの向きの値はどうなるかな?

Sくん
ハンドルを回す角度によって,増えていきますね.
M先生
逆にハンドルをに左切ると,どうかな?
Sくん
マイナスの値になりますね.

Tさん
あ,そっか!ハンドルの向きの値を車のX座標の値に足していけばいいんだ!
Sくん
こうかな.

Sくん・Tさん
できたー!
Sくん
はずしておいた方向の操縦用の命令を入れれば...おー!それっぽい動きになりました.


「考えてみよう!」

以下のようなスクリプトを繰り返し実行し,ハンドルを回すと車はどのような動きをするでしょうか. プログラムを実行する前に車の動きを予想してみましょう.