スポンサーリンク
スポンサーリンク
解答例
let expert = Expert()
world.place(expert, facing: .south, atColumn: 1, row: 8)
func collectGemsInLine() {
while !expert.isBlocked {
if expert.isOnGem {
expert.collectGem()
}
expert.moveForward()
}
}
collectGemsInLine()
expert.turnLockDown()
expert.turnLeft()
collectGemsInLine()
expert.turnLockUp()
expert.turnRight()
collectGemsInLine()
解説
placeメソッドに、向きを指定できるfacing:
が加わりました。
以下は同じ型により決められた項目の一つで、これらを『列挙』といいます。
向きが決められるので、さらに便利ですね。
.north (北)
.east (東)
.south (南)
.west (西)
いつものように、まずはエキスパートを初期化します。
worldインスタンスで場所などの詳細を設定し、配置。
コードを全部書く前に一度実行してみて、方向が合っているか確認してみましょう。
関数で、『行き止まりまで、もし宝石があれば取って進む』を作れば、あとは簡単ですね。
要点まとめ
・placeメソッドで、向きを示す引数を指定することができる
スポンサーリンク