陪孩子玩这个游戏,这一关还是要用点心。不想像别人搞的那样偷懒把角色搞几个一起走,用一个专家和一个角色按正常的方式走。把代码发出来出下。
letexpert= Expert()
letcharacter= Character()
var GemNum = 0
var JumNum = 1
varRoaNum =3 //设计一个路口动作的顺序,从3开始可以方便小朋友理解。
world.place(expert, facing: north, atColumn:0, row:4)
world.place(character, facing: .north, atColumn:4, row:0)
func turnAround() { //为了省事好调头
character.turnRight()
character.turnRight()
}
func charDo() { //为了好记宝石数和收纳
ifcharacter.isOnGem {
character.collectGem()
GemNum +=1
}
}
funcLRAorund() { //把0号路口,1号路口,2号路口的动作规定好。
ifRoaNum%3==0{ //0号路口动作
character.turnLeft()
character.jump()
charDo()
character.turnLeft()
JumNum +=1
RoaNum +=1
}elseifRoaNum%3==1{ //1号路口动作
character.turnRight()
character.jump()
charDo()
character.turnRight()
JumNum +=1
RoaNum +=1
}elseifRoaNum%3==2{ //2号路口动作。
character.turnLeft()
character.turnLeft()
character.jump()
charDo()
JumNum +=1
RoaNum +=1
}}
expert.turnLock(up:true, numberOfTimes:3) //这个是最优的升降路了,只此一次
whileGemNum < totalGems {
charDo()
whileJumNum %7!=0{ //每七个格子判断一次路口。
charDo()
character.jump()
JumNum +=1
}
LRAorund() //会有一些动作是多余的。先捡够宝石再说吧。
}