Here is my solution. Character is looped and checking Gems count.
let totalGems = randomNumberOfGems
let expert = Expert()
let character = Character()
var gemCounter = 0
func go() {
if character.isBlocked {
character.jump()
}
else {
character.moveForward()
}
if character.isOnGem {
character.collectGem()
gemCounter += 1
}
}
func went() {
for i in 1 ... 6 {
go()
}
}
world.place(expert, facing: .north, atColumn: 0, row: 4)
expert.turnLockUp()
world.place(character, facing: .south, atColumn: 4, row: 6)
while gemCounter != totalGems {
went()
if !character.isBlockedRight {
character.turnRight()
character.moveForward()
character.turnRight()
}
if character.isOnGem {
character.collectGem()
}
went()
if !character.isBlockedLeft {
character.turnLeft()
character.moveForward()
character.turnLeft()
}
went()
world.place(character, facing: .south, atColumn: 4, row: 6)
}
Topic:
Developer Tools & Services
SubTopic:
Swift Playground
Tags: