いよいよカウントした数を条件にしてプログラムを制御します。
前ステージ同様、collectGemする度にgenCounterに1を加えていきつつ、それが7になったら止めるわけです。言い換えると、「gemCounterが7になるまでは繰り返す」ループを組みます。
キャラクターが動けるのは真ん中の1本道のみ。この中にランダムに宝石が出現するので、それをとりつつ行ったり来たりします。行き止まりになったら2回向きを変えて振り返りましょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
var gemCounter = 0 //gemCounterが7より少なければ続行 while gemCounter < 7 { moveForward() //宝石処理 if isOnGem { collectGem() gemCounter += 1 } //突き当たったら来た道を戻る(振り返る) if isBlocked { turnRight() turnRight() } } |
はじめelse if で行き止まり処理をすると直進の無駄な動きが出て、処理できないわけでは無いけど、ブサイクで困ってました。
ifで処理すればよかったのですね。
参考になりました。