青少年编程Playgrounds之二十--算法

青少年编程Playgrounds之二十–算法

第五关 向左走,向右走

在这里插入图片描述

在这里插入图片描述

本关是本章也是学习编程1的最后一关。
感慨良多,对比一下第一关,这还是同一个学习编程吗?走到这里,想来也对编程有了一定的了解,逻辑,条件,循环,函数也应该有了深刻印象了。
学习编程2 会更进一步深入了解函数,数组,类,算法等等,真的很不错。
无论哪种语言,这些内容都是必不可少的

废话不多说了,进正题。
根据地图来看,通关方法有很多,完全自由发挥,地图和宝石及开关位置都是固定的,所以难点在于你想写多少种方案,你想多精简,你的野心有多大😄
抛砖引玉

先不头脑风暴,把必须要用到的函数写下来

func collectOrToggle(){
    if isOnGem{
    	
        collectGem()
    }else if isOnClosedSwitch{
        toggleSwitch()
    }
}

分析一下搜集和开关切换部分,每次遇到宝石必定右转,而切换开关必定左转,那么稍微修改一下函数

func collectOrToggle(){
    if isOnGem{
        turnRight()
        for i in 0..<2{
            collectGem()
            moveForward()
        }
    }
    //当执行完后,Byte已经不在开关上了
    else if isOnClosedSwitch{
        turnLeft()
        for i in 0..<2{
            toggleSwitch()
            moveForward()
        }
    }
}

完成两个宝石,两个开关的动作,然后离开
然后导航算法

func navigateAroundWall() {
    if isBlocked{
        if !isBlockedLeft{
            turnLeft()
        }else {
            turnRight()
        }
    }else{
        moveForward()
    }
}

主循环中依次调用函数,因为很明显可以用最后一个已经打开的开关作为结束条件,而我们的开关操作函数已经避免了会异常退出,所以,在主循环中

while !isOnOpenSwitch{
    navigateAroundWall()
    collectOrToggle()
}

高速运行代码
在这里插入图片描述

通关啦…!!!👌

虽然主循环中代码量很少,但整体代码量不少,所以肯定有更简单更灵活的代码,那就拜托你了…

我在学习编程2等着你哦。

你问我为什么不用复数,你们,嗯,你懂的,根据阅读量我们可以简单推断一下的。

说句心里话,我是真心觉得Playgrounds很适合入门编程语言学习,比Scratch更深一些,但是图文并茂啊,有3D地图和角色啊,直接控制角色啊。但是市场全是Python的编程学习的,几乎没有Playgrounds的市场,或许因为这个是基于Swift语言的原因吧。苹果还得再努力啊。虽然现在
Swift + SwiftUI 的方式已经把做苹果生态链的门栏降到地平线了,可惜中国的影响力完全不够啊。国外教学网站很多这方面的东西,可惜了。
其实就算不学Swift编程,这个学习编程系列也对于语言的理解很有帮助,语言都有共同性,掌握了这些,C,C++,C#,python…,Java也是能很好上手的啊。
好吧,Java我不知道,我只是熟练掌握C
会用C++,C#而已
Python其实也就是用它做AI的机器人学习生成学习模块而已。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值