MacOS Playgrounds 学习编程二 第二十五关 参数8-双峰

这一关之前发过,为了方便能按顺序阅读,再编辑发一下。

这关,可以多个角色,也可以两个角色,我们选用的是两个角色。一个用来控制升降砖块,一个用来收集宝石。

需要用的知识都是我们之前训练过的。

我们试着做一下。

代码如下:

let totalGems = randomNumberOfGems

let expert = Expert()

let character = Character()

var GemNum = 0

var JumNum = 1

var RoaNum = 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() {

    if character.isOnGem {

        character.collectGem()

        GemNum += 1

    }

}

func LRAorund() {

    if RoaNum%3 == 0 {

        character.turnLeft()

        character.jump()

        charDo()

        character.turnLeft()

        JumNum += 1

        RoaNum += 1

    }else if RoaNum%3 == 1 {

        character.turnRight()

        character.jump()

        charDo()

        character.turnRight()

        JumNum += 1

        RoaNum += 1

    }else if RoaNum%3 == 2 {

        character.turnLeft()

        character.turnLeft()

        character.jump()

        charDo()

        JumNum += 1

        RoaNum += 1

    }}

expert.turnLock(up: true, numberOfTimes: 3)

while GemNum < totalGems {

    charDo()

    while JumNum % 7 != 0 {

        charDo()

        character.jump()

        JumNum += 1

    }

    LRAorund()

}

执行后:

在这里,由于宝石数量是随机的,而且很多砖块都是需要.jump()功能的,所以,我们要用.jump()遍历所有的位置。

注释大家自己加上去吧。如果还有更好的方法,可以自己试一下。看看哪种最有效?

你可能感兴趣的:(MacOS Playgrounds 学习编程二 第二十五关 参数8-双峰)