スポンサーリンク
スポンサーリンク
解答例
func turnAround() {
turnRight()
turnRight()
}
func collectFour() {
collectGem()
moveForward()
collectGem()
turnAround()
moveForward()
turnRight()
moveForward()
collectGem()
turnAround()
moveForward()
moveForward()
collectGem()
}
moveForward()
for i in 1 ... 3 {
collectFour()
moveForward()
moveForward()
}
collectFour()
解説
宝石の位置などを見ると、同じパターンを4回繰り返せばゴールかなと思います。
ただ、最後の場面では単純に4回繰り返す形では、行き止まりに2回もぶつかってカッコ悪くなります。
それでもゴールはできるのですが、やはり無駄なコードは無い方がいいですよね。
それで、forループで3回繰り返すことにして、最後はcollectFour()
で終わりにします。
また、collectFour()
は、関数にforループを使ってもいいかもしれません。
そうすると、以下のようになります。
func turnAround() {
turnRight()
turnRight()
}
collectFour() {
for i in 1 ... 3 {
moveForward()
turnRight()
moveForward()
collectGem()
turnAround()
}
moveForward()
collectGem()
}
for i in 1 ... 3 {
collectFour()
moveForward()
moveForward()
}
collectFour()
6〜16行目のあたりを変えてみました。
ゴールの仕方は一つではありません。
どうぞ参考にしてみてください。(⌒▽⌒)
要点まとめ
・関数とforループを使える場面を色々考えて試してみよう
スポンサーリンク