スポンサーリンク
スポンサーリンク
解答例
let character = Character()
world.place(character, facing: south, atColumn: 1, row: 7)
func completeIsland() {
character.toggleSwitch()
character.jump()
character.collectGem()
character.turnLeft()
character.jump()
character.toggleSwitch()
}
completeIsland()
world.place(character, facing: north, atColumn: 6, row: 3)
completeIsland()
world.place(character, facing: east, atColumn: 1, row: 1)
completeIsland()
解説
方法は確かにたくさんありますが、このやり方は・・・💦
でも、禁止されているわけではありません。
それぞれの島で、新しくキャラクターを配置してゴールしています。
関数でひとつにまとめられる法則をみつけて、すっきり解決できました。
以下の解答例では、ワープを作ってゴールしています。
他にも、何もない場所に道を作って歩いて周ってゴールするやり方などもあります。
色々チャレンジしてみましょう!
解答例その2
let character = Character()
let pinkPortal = Portal(color: .pink)
let greenPortal = Portal(color: .green)
world.place(character, facing: east, atColumn: 5, row: 3)
world.place(pinkPortal, atStartColumn: 5, startRow: 3, atEndColumn: 1, endRow: 2)
world.place(greenPortal, atStartColumn: 1, startRow: 3, atEndColumn: 2, endRow: 7)
func solveIsland() {
character.jump()
character.toggleSwitch()
character.turnLeft()
character.jump()
character.collectGem()
character.turnLeft()
character.jump()
character.toggleSwitch()
character.turnLeft()
}
pinkPortal.isActive = false
solveIsland()
pinkPortal.isActive = true
character.jump()
pinkPortal.isActive = false
solveIsland()
character.jump()
character.turnRight()
character.moveForward()
greenPortal.isActive = false
character.turnLeft()
solveIsland()
スポンサーリンク