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()遍历所有的位置。

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

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容