正面が行き止まりならtrue、行き止まりでなければ(moveFoward()可能なら)falseを返すisBlockedという条件が登場します。
このステージもisBlockedがtrueの時とfalseの時どちらにも処理があるので!を使って反転させる意味は薄いのですが、設問で使うことが指示されているので、きちっと使いましょう。強いて言えば、条件分岐isBlockedの結果はfalse(行き止まりでない)になることが基本なので、まずはそちらの処理を先に書いて、例外として行き止まった時の処理を後にする方が、「いけるとこまで行く、突き当たったら曲がる」という思考にマッチしてコードが読みやすい、という効果があると思います。
1 2 3 4 5 6 7 8 9 10 11 |
for i in 1 ... 13 { if !isBlocked { //前に進める時は進む moveForward() } else { //前に進めない時は曲がってから進む turnLeft() moveForward() } } toggleSwitch() |
for i in 1…13 でコードを実行すると
バイト君が止まってしまいます。
for i in 1…16にするとスイッチ
の所まで行きます。
どうしたらいいのですか?
同じ質問ですハハハ
あぁ、わかった。
turnLeft()だけではなく、
moveForward()も付けます