スポンサーリンク
スポンサーリンク
解答例
moveForward()
while isOnGem() {
turnLeft()
collectGem()
moveForward()
collectGem()
turnLeft()
moveForward()
turnRight()
moveForward()
}
解説
whileループを使うと、このようになります。
『宝石の上にいる限り』このコードを繰り返します。
最初に一歩進むと、宝石の上にいるので実行が始まります。
全ての宝石を取り終わって、一番最初に宝石を取った場所に立つと条件が外れているので
動作がストップして終了します。
問題文にもあるように、他にも様々なゴールの仕方があるのですが
やはり見た目にすっきりしたものにしたいものですね。
例えば、forループの中にforループを入れると、以下のようになります。
for i in 1 ... 4 {
for i in 1 ... 2 {
moveForward()
collectGem()
turnLeft()
}
moveForward()
turnRight()
}
正しい答えも間違った答えもありません
と書いてあります。
他にも条件分岐コードなど、色々な方法を試してみてくださいね。
要点まとめ
・今まで学んだ技を、色々使って自分だけの解決方法を見つけよう
スポンサーリンク