第十五关,我们先看一下十五关的注视,特别是第二行啊,这关是你无论如何都不能得到三星,但是没有关系,可以先挑战后面的关卡,当你学到新的知识以后,可以再回来重新挑战。 那这点是为什么呢?因为这一关啊,我们会看到啊,他其实要走这样一个路线,我们很很容易的就想出要使用这个或循环,但是呢他下边又没有给这个或循环的程序,所以可以怎么办呢?我们可以这里手写啊, for i 引啊引机, 然后这是几次啊?一会我们挨个来看啊。好,那么我们之前在讲负循环的时候,这个爱爱,他是怎么变化的呢?爱,比如说我们重复执行四次,那么爱就是从零开始变化,然后一 二三,这样一共变化四次,巧合的就是在这里啊,每一块飞板都有编号,那么这个编号也是从零开始的,比如说这里四块飞板,零一二啊,零一三二,零一二三啊,刚好是四块飞板, 那我们怎样去利用这个破循环控制飞板的移动呢?好,那我们可以试一下啊, 我们在调用飞板的时候呢,我们用鼠标一点,他会出现这个啊,弗莱尔后边加一个数字,那我们把这个数字去给他改成爱, 当爱等于零的时候呢,就表示第零块飞板要进行移动了,我们把移动给他加上,那么下一次循环爱会变成一,那么就是说第一块啊,这个飞板也要开始移动,第三次循环的时候,爱会变成二,就会第二块飞板,然后是第三块飞板,零一二三,刚好 四块。那我们可以先运行一下这两行程序,看看什么效果。点击。哎,我们会发现啊,这个飞板呢,他就排成了一列啊,这个时候呢,我们可以干什么?我们是不是就可以让戴夫去通过啊?这两边,然后走到这里, 那紧接着我们再做一次循环,把这两个飞板去给他挪到这个位置,大夫过去是不就 ok 了?好,那么这样做的话啊,我们就也可以打到三颗星了啊,当然这里面没有破循环,需要我们自己去打。 for range 还可以用 i 啊,因为这个电量每次在使用的时候都是会进行重置的, 那第二次的话就是戴夫要走了,戴夫是前进两啊,前进,然后左转一二三,前进三步,然后 加上左转重复进行两次就可以了啊,好,我们再看一下效果。 好,此时大夫走到这里,那我们接下来接下来是不是只需要让这两个飞板跑到这里,大夫过去就可以了?好的,我们还可以使用重复执行来做啊,继续点击。 好,这里还需要强调一下关于重复执行的这个格式啊,一定要把这个光标放在最前面,这样才算是开始了一段新的程序,没有再重复执行里边 第三段程序,我们把零号和一号飞板就飞过去啊,也是 for in i in 啊 range 这时候是吐啊,两次干什么呢?我们点一下这个飞板 flare i, 然后前进,前进几步啊?我们打开网络数数,一二三,前进三步,前进三多一个点。好,最后呢最后是大夫往前走三步就可以了啊,大夫,前进三步 好,运行一下 啊啊。
粉丝3457获赞7784

呃,大家好,我是你们喜爱的编程技术传播使者辛巴 啊,今天我们来讲这第讲述第十五关卡啊,第十五关卡有一点小的放大一点,可以放大一点, 那打开网格十五个,我们看到这个飞船啊,这个小人啊,我们这个小人就在这个位置,地图观察入手,然后在这个位置,然后我们飞板是在这个位置,哦,是可以这个方向,这个方向我们肯定是需要这么去 收集我们所有的这个呃能量晶体啊,我们回到这个编辑区域啊,我们读一下他的提示,布拉尔可以一动不止一次哦, 如果你无论如何都不能得到三颗星,没关系,先去挑战后面的关卡,当你学到新的知识以后,可以再次回到这个关卡重新挑战。 嗯,之前也会遇到过这种描述啊,告诉你可能拿不到三颗星啊,但是我们不要怕,其实呃这些都是有点吓人的味道啊, 我们相信自己的能力是可以做到的啊。啊,首先我们是让这两个背板填充这个啊,太空区,让我们的小人拿到这一个呃能量晶体啊,嗯,来二零前进一步就行了,对吧? 好,然后是 plus, 二一也是前进一步,然后我们小人,不,不是啊,是有可能呢,第一次拿不到呃三颗星,但是 我们可以在呃现有的基础上再怎么优化我们的代码,然后我们前进一二三三步, 前进三步来拿到第一个能量进去,然后我们小人需要一个转向,需要一个转向,这里我们介绍一个方法,介绍一个右手定律。右手定律我们可能呃学过,我们上初中的一些同学 可能会学到过这个右手定律,我们怎么用右手定律呢?判断小人的转向了,我们伸开我们的右手,手心朝下,手手心朝下,手背朝上,然后我们手指啊,我们手指尖啊,指向我们小 人面对的方向啊,我们手指尖与小人面对方向一致啊,手心朝下,手背朝上,我们大拇指啊所在的内侧,就手 我们左转的内侧,我们小拇指所在的内侧就是我们右转的内侧。我们通过转手来模拟小人的转向啊,如果是小人需要向左转,那他一定是朝大拇指方向运动, 如果是小人需要向右转,那一定是朝啊小拇指方向运动。好,我们可以伸开手来练习一下,模仿一下啊,右手规则,手心朝下,手心朝下, 然后呢?呃,我们的手背朝上,然后我们的手指尖啊,指向我们小人现在所处的的手面向的啊这个方向,然后我们来模拟这个小人的转向,如果小人转向是往大拇指方向转,就是左转 转向,往小拇指方向转,那就是右转。好,我们从这个模拟上来看出啊,我们应该是左转,左转 好,左转好,然后呢,我们走到了这个位置,对吧?左转,然后需要我们 fly 三、 fly 二、填充啊,前面的这个太空区域 填充太空区域,然后呢?呃,我们的小人需要前进来收集第二个能量,进行前进三步, 这三步。接着小人还是让我们再来模仿一下,再模仿一下,伸出我们的右手,手心朝下,朝大拇指方向转,但是左转, 左转,左转之后,然后我们需要啊,需要这边的啊,两块,他已经飞到这边了,都前进一二三,都前进三 三步,来填充这个曲,那个那个,所以我们是他前进三步啊,我们看到了一二三,哦,不是四步,四步啊,错了,是四步,看清楚, 前进四步。好,下面我们的小人只需要什么前进三步就行了啊,前进三步,拿到最后一个能量惊喜就完成任务。好,我们 运行一下,看一看我们的结果啊,是不是和我们的预期是一样的,能拿到三个能量精品。 哦哦,多了,走多了走多了。错了错了啊错了错了,那我们这边就报错了,需要重试啊,重试重试一下,因为是我们这个错了啊,三还是三 看错了啊?因为他已经在这这个位置他已经在这个位置,只需要前进三步就行啊,好,再来。 所以我们在这个编程当中有一个非常重要的概念叫调试啊,调试就是我们把代码写完了,我们可能认为已经正确了,那我们就需要跑一遍,跑一遍,跑的过程当中如果发现有错误,及时改正错误,让我们正常的通过打广卡。 呃,我们看到了,我们虽然过关了,但是我们没有拿到啊,三颗星啊,其中有一个星没拿到是因为我们代码量超了两行代码量超了两行,那我们怎么来 啊?减少我们的代码量,回到我们的代码上一定要拿到三颗星,一定要拿到三颗星啊,怎么减少我们的代码量呢?我们来看一看, 看看你看啊,不来一,不来零零 step 三 left step 一 step 一,不来二三三二二三就是二三。 这块其实是可以合并的,有重复的地方看到没有?这是重复的,虽然这个两个板, 但是不一样,对吧?不一样,可以说我们有规律啊,这边是零和一,这边是二和三,对不对?有规律啊,我们可以用一个循环好演示给大家啊,我们去改这块的代码 啊,我们用一个破循环,破循环知道怎么写吧啊?这边虽然没有破循环的话,但是我们之前已经学过了,我们可以用叫破 i 音 range at a n g, 对吧? 小写的啊,这个地方两次就行了,对吧?我只有两个重复的,我们把这个重复的地方给他选中,然后按着配不见 啊。这块代码呢?就可以暂时的不用啊,先把这块的量改好。呃,我们之前讲过癌是个变量啊,癌是个变量。我们进来的时候啊,是第一次进来的时候他是零,对吧?第二次进来的时候是一啊,那我们可以用癌来啊, 表示我们这个飞板的缩影。飞板的缩影?嗯,比如我们这个里面进来第一次是。呃。零,对吧?那我们这个 就是直接是矮,对吧?然后这个变成一加矮一加。我们第一次进来我们看看啊,第一次进来矮是零,对吧?那是 black 零 step 一,然后 black 二一 step 一,对吧?哦,和我们之前的代码是一样的,第二次进来是一,那么 black 二一 好不对?应该不是,应该是二和三,对不对?应该是二和三。那我们怎么处理呢?那我们怎么处理呢?就是 怎么处理一下。好,我知道怎么处理。 再加一对不对?我们第一次进来是一吗?对吧?让他再加一,那他第二次进来的时候他就是什么?他已经加了一了啊, 每次进来他会自增一次加,这边我们又重复加了一次音,对不对?重复加了一次音,那他第二次进来应该就是二二,然后就是三,对不对?二和三了,然后顺便是 dv step 三和那个 啊?哎,等于啊,然后这个地方我们就可以什么了, 不用了,不用然后啊,我们来测试一下啊,测试一下, 不知道大家有没有看懂啊?我们通过癌啊,癌是个变量,癌在这里面也是个变量,之前的课程中讲过的,癌是个变量,然后癌有个特征,每次进入这个这个循环的时候啊,破循环的时候他都会进行针, 就是自己加一加一,我们如果在这个代码里面自己又加了一次一,那他再进来又加了一次一,他进来之后就是二,我们利用这个特征,那么这个里面就是第一次进来他是零,对吧?零 这边就是福来二零,然后这边就是福来二一,我们遇上的是一样的,第二次进来由于我们这边先加了一次一了,那零加一等于一,对吧?第二次进来他又加了一次一,一加一又是二二,那么这一个就是福来二,对不对?二就是这个,对吧?刚刚需要调整的这两个, 然后一加二就三,对吧?是否和我们一起的,我们来调试一下。你等一下啊,看看是不是这么一个, 哦,不对,哦不对,二和三, 嗯,不对的原因是我们这个小黑板,对吧?这个小黑板, 好,我们继续回去啊,遇到问题啊。呃,这个是二和三,二和三,我们第一次进来他还是,那就是癌加一没起作用,对吧?癌等于癌加一没起作用, 没起作用怎么办呢?还有一个办法,在这边定一个新的变量 对不对? a 等于零好不好?然后再 a 等于 a 加二, a 加二,我们用什么呢?用 a 用 a, 我们刚刚挨没起作用,可能就是我们在 癌啊,在这边修改是无效的,修改是无效的,这和我们的一些逻辑有关系,设定的逻辑有关系。我们不用癌,我们用 a 也是可以完成任务的啊,试试看用 a 好不好?我们用电量 a 来完成我们的任务看看。 哎,是可以的,对吧? 啊?还是多银行代码还多银行代码,我们再回去看再怎么优化一下啊。嗯, 那他应该还是要求我们用 a 没有变,对吧?没有变了,我们把这个 a 再去掉了,我们再试试看用 a 行不行? 试试看。哎。 i 加二试试看。刚刚就是因为 i 加一 i 加二呢, 不能控制俺,对吧?跟俺没关系 啊,知道怎么写不要来加啊。嗯?怎么写啊? 乘以二,乘以二,不知道今天有没有发现这是一个什么逻辑,为什么?乘以二?就是我们是为了凑,哈哈,凑?凑什么呢?凑这个数, 你看我们第一次进来还是,呃,零,对吧?还是零?二乘以零还是零,对不对?二乘以还是零,对不对?那他第一次进来就是零号飞板和一号飞板,对吧?没问题。 然后第二进来是一对不对?一乘以二是几是二吧?一乘以二是二,二加一是几?三,哎,这个数数就是二和三了,第二次进来满足我们的要求了,对不对哈?所以这个里面我们需要动动脑筋啊,动动脑筋也是可以完成的, 家不能,但是我们可以成啊,对吧?通过其他的方式,我们依然可以完成这个愿望 啊,我们要动动脑筋,你看我们拿到了,呃,三颗星,还少了一个啊,对吧?比这个大马横竖还少了一个 完美的啊。过了这一关,所以从这个关卡上我们就了解到我们做编程是要动脑的,对吧?一种方法不行,我们要试尝试多种其他的方法来解决 问题,对吧?只要我们能解决问题,那就是好方法。好啊,本课我们讲述完毕啊,欢迎大家继续收看后面的课程。

大家好,我是辛巴,呃,现在我们来讲另外一个关卡啊,也是二级训练场的综合训练二 呃的第十五个关卡啊,中国训练二的第十五个关卡,呃,这关卡呢,实际上呃有很多方法可以过去啊,可以过去,你包括辛巴这边,呃就找到了两种方法 啊,首先我们得确定啊,我们这个路径啊,行走的路径是什么样子的啊?我相信这一关可能不止现在这个两种方法啊,可能还会有其他的方法。 好,那我辛巴就是根据辛巴的思路来跟大家讲啊,首先啊,看到第一种啊,是我们学员他自己写的一种方法,这种方法呢啊有他的啊,特点啊,有他的特点。是不是特别是在这块啊,特别是在这块有他的特点啊, 这块可以帮助我们省代码啊。首先我们确定路径是什么啊?啊?在辛巴看来啊,他的路径是这样子的,这么 然后这么走,然后走到这边啊,这么一个过程,所以呢,我们有个飞板就要动了啊 啊,我星爸可以最后确定的是什么呢?八号九号是往前挪两格,往前挪两格, 十号十一号是往前挪四个,一二三四一二三四挪到这边。好,然后呢这边啊,因为要填这两个,对吧?有他两个来填是 五号和四号,四号和五号是挪两个,也是挪两个。好,那八号九号、五号四号是挪两个,对吧?然后剩下的是填这一排,对吧?是填这一排,是由一二三 四啊,零一二三来舔,他们是分别挪四格。好,所以我们看到的是挪四格的有一二三四和他挪两格的有一二三四啊,然后这两个不动啊这两个不动 好前面啊这两排代码啊就分别是啊怎么挪的啊真的怎么挪的啊行吧啊不太建议啊这么他这么挪但是他这么挪了没问题啊没问题,我们看看啊看看他是怎么挪的这么一个过程 好没有问题对吧小人走走哎走哎这是他的特点啊这他的特点好然后呢辛巴来 来第二种方法第二种方法啊关起来 关起来打开。好啊我看我们这个里面用了什么呢用了我们这个叫什么他这个是用了什么啊这种方法我们叫做什么 啊。三木运算符啊三木运算符是一个衣服判断语句如果衣服判断啊衣服判断语句就是这块是衣服判断语句是吧衣服成立的话执行前面的啊返回前面的值衣服 日产力返回后面的纸啊返回 ls 后面的纸啊返回后面 ls 后面的纸。这个就是我们三木运算的这么一个特点啊。好辛巴这块呢也有这么一个类似的方法啊但是辛巴是怎么做呢好辛巴啊有几种方法啊路径 是一样的但是呢起码是这么想的首先不是这么写的啊哎首先是先运先运营一下吧先运营一下给大家看一下结果啊结果结果结果是什么 哎有的是跑两个有的跑四个是吧也能达到这种效果对不对?好啊辛巴的人就是咚咚咚咚咚这么走对吧他的人是咚然后退 啊过来转然后退然后呃过来转走走然后还是同一个方向转然后再 退哎他就是根据还是退还是进来判断的啊。来进那个判断好他他是好在这个地方然后呢辛巴是哎就转了啊就转了啊希望这个还可以再 缩短啊。再给你做缩短。嗯好那辛巴怎么做呢?好返回会圈啊。那告诉辛巴辛巴告诉你。辛巴首先是不是这么做的啊?首先不是这么做的首先我们是一个错循环 腹部循环。首先我们是要走啊要走两个的和四个的分别是几个 啊?两个四个的四个是走六个对吧两个的是四个是不是。那我们先用一个破循环是把什么零一二三四这种情况这个是不是很简单零二三四就直接是 flower 来,哎对吧来哎然后走走几步走四步对不对?一二三四对吧是走四步好走四步 然后呢还有什么还有什么五四五和八九是走两步四五和八九是走两步。那怎么办哈哈好,我们之前讲过一种方法的。啊啊我们之前讲过什么方法呢哎 来看一下我们用静态数组的方法。静态数组是怎么来静态数组来首先我是小括号里面是中括号对吧我们把列出来四五 八呀呀八哎呀呀怎么回事八九对吧他是做几步做两步是这样写吗?不是对四五八九我们得加个编号给他对吧?是每次他都是 对不对?好这样一来这样一来四八九是吧好还有两个十和十一对不对?我们再来个破循环 这次是二了对不对?十和十一十和十一怎么办啊。先把这次展示一个完整的思路给大家啊十和十一我们就分别来对不对?十 加 i 对不对? step 几啊说 step 四对吧。好这样一来你看我们这个代码啊行数啊超了啊运行一下这样是能过的啊。首先我们先这么简单一下解答一下对吧简单的解答一下 好是能过的对吧但是但是我发现啊行数多了 好我们要说行怎么说行这个就是一个关键了啊。那先把。哎就用一些我们之前用到的方法了啊 啊第一个数行数方法是什么呢哎我们可以借鉴他的啊把这个变成了三行对吧把它变成三行把它变成三行 那么可以在干什么 ctrl c 对吧。那我这边就是这个走法可以缩一行对吧。因为他的这个走法他三行我这个四行了对不对他这个可以简单一点对不对?好那我们就用他的这个啊好, 呃这个没拷贝好啊好来。 哎他这个也没拷贝好啊行吧我就这么拷贝吧。 好他变成三行了对不对然后他是什么 run 这是六对不对好他把这个也去掉了 再走边线六来看看。用它的方法啊用它的方法跑起来哎。哎不对不对 检查一下啊啊我们这个嗯好坑爹啊。 right 对吧它一直是向一个方向转啊最重要的是它一直是向右转最终 是我们有的是需要退两行有的是需要什么啊有的是需要什么有的是要前进两行对不对啊这个是关键啊这个是他的关键啊所以哎他这个做挺好的啊做挺好的我们要鼓励一下 哎这么是不是也解决问题了对不对是不是也解决问题了哎其实我们还有其他的方法可以解决啊。还能解决还能解决。怎么解决呢?辛巴是怎么解呢?辛巴不在这块花功夫对吧?不解决这块的问题。 好,我来返回啊。好,先把不解决这块的问题,先把解决这块的问题,把这边的代码再缩短。能不能缩短?哎,我告诉大家能缩短。怎么能缩? 那就是应用我们的这个三步运算啊,也是三步运算,也就是我们有的地方是走四步有的地方是走两步,对不对?那看新版怎么弄啊。 一共是几个洞有格子。呃几个要?要啊,几个飞板要跑。一共是十个飞板,你看这边是两个飞板,这边是上面四个,下面四个八个飞板是吧?好,一共是十个,我就这么分配一下啊。上面一行走五个,下面一行走五个,因为我们一行最多是几个 逗号几个逗号一行最多是五个逗号对不对?好,那这个怎么办啊?走四个的怎么办?嘿走四个的有办法哈。有什么办法?我们有三步运战服有什么呢? 衣服 i 小于四 i 小于四就是零一二三 是前四个是不是零二三对不对?那我们应该是用 i s x 用多少 x。 我们把十一给他把十一给他。啊。我们这种方法。那我们这边是什么? 零一二四零一二三和十一会走四步对不对啊?为十一会走四步,因为会他会这样。好,那我们这边怎么怎么办?我们这边再加一个加一个十把十加给他。十加给他之后啊 前面四个都对,是不是都是走两步?但是哎等于十的时候是第四,第五个是不是我能不能走二不能走二我得走几我得走几,我得走四,是不是这个地方就可以用什么三步云上 嘛,是不是 if i 小于四? else e l s e l 是多少?二十四嘛,对不对?哈?第五个,哎,就是 d d i 等于五的时候,是不是他等于十?十是不是小于四?这个时候他走几步?走四步啊?好, 这样的话,我们这个就这两个分别填到前面去了,一个给他了,一个给他了,是不是?哎,我们这样也能过去啊,看一看啊, 这个就是来教大家一些省代码的方法啊。省代码的方法,但是呢啊,实际上啊,在我们的编程应用当中这种方法用的很少,没有必要,我们没必要省什么代码行数啊,实际上我们经常在编程当中不需要代码行数的。 呃,简练,我们更需要是代码的清晰啊,所以这种考试的方法辛巴并不推荐啊,并不推荐啊,辛巴推推荐的是什么呢 啊?你尽量的把代码写清晰,对吧?然后你啊用最少的步数来完成我们的关卡,这是最好的啊。考验行数其实不太好啊,不太好。 呃,这叫引起技巧,是不是啊?引,引起技巧不太好啊?好,那啊,这个啊,先把就讲到这里,感谢大家。

好,现在我们来到积木块模式一级训练场基础入门二的第十五关。那我们首先还是先来看下下笔行走路线。 走两步之后右转,走两步左转。现在走三步右转走三步, 左转走四步,右转走四步。好,那我们看到带着行走的路线,你的步数啊,也是会变化的啊,最开始是两步两步,接下来呢,就是三步三步。再接下来啊,就是四步四步。 好,那我们开始来写啊,大步行走的步数是会变化的,那我们要用变量啊, 电量将啊复制 a 为好。那复制 a 为什么好呢?那我们在最开始啊,他是行走两步的啊,我们一般都是复职,他最开始行走的一个步数。好,那复制 a 为二。好。 然后呢,我们可以看到他是有规律的对吧?啊,直走两步之后右转啊,走两步之后左转,走三步之后右转,走三步之后左转啊,他的每一个啊,都是有规律的啊,都是可以重复执行的 啊,每一个这个部分都是可以重复执行的啊。嗯,那我们就可以重复三次吧。重复三次。那每一次呢, 他都是行走 a 部啊,第一次是复制 a 为二嘛,那他就行走两步之后呢,右转,两个右转,右转完了之后,他还是行走 a 步, 嗯,还是行走 a 步。最后打就左转左转。好,那第一次是二二,接下来是三三,接下来呢是四四。那我们就可以看出来了,他每循环一次,结束后 的值呢,就会增加一,所以我们要将 a 增加一。嗯, a 代表的就是他行走的步数,行走的步数增加一。好,那我们来看一下运行结果。 嗯,这样子我们就三颗星的通关了。

哈喽,同学们好,现在我们来看看第十五关的解题思路。那首先先画一下路线,那我们来看一下这个路线啊,这是一段路线,然后紧接着这是第二段, 这是第三段, 这是第四段。我们可以观察到啊,他这里的话第一段重复里面呢, 我们一共有四个大的重复,那每个重复里面呢?还有小的重复,我们需要用到嵌套循环来完成它。首先呢我们看一下这里两个直角,所以我们要重复两次, 飞船前进两步,然后呢飞船左转,飞船前进一步, 飞船右转,这是走完一个直角,一共走两个直角走到这个位置上。然后呢我们这里呢是 前进两步左转,前进两步左转。我们可以再来一个重复在里面前进两步 左转。那我们现在飞船恩是走到这个位置上,前进两步左转,前进两步左转,面向这个位置,但是我们第二次重复的话要面向这个位置,所以 需要再进行一个左转,这样子呢是完整的一次重复,这里呢一共用到了一二三三个重复啊,用的是嵌套重复去完成它,大的重复一共是有四个的,那我们点击一下运行看一下。 以上就是第十五关的解题思路。

哈喽,同学们好,现在我们来看看第十五关的解题思路。那首先先画一下路线,飞船的前进路线的话是这三段他是一样的,那大夫要去渠道, 这竖横排的零件也是一样的。那我们可以用我们的重复执行去完成它。 首先是重复执行三次,首先飞船前进三步,然后大夫的话,可以先去取前面的大夫行走两步, 然后取后面的零件的话,可以直接后退四步来取。行走负四步,那大夫还是要回到飞船上,所以需要再行走两步,这样子就取完第一段 路线的零件了。那去取第二段的话,因为他重复执行了,我们就不需要去走第二段第三段的路线,直接点击运行。 以上就是第十五关的解题思路。

第十五关,我们先看一下地图,在图形画中已经讲过,他是一个阶梯型的循环路线,那学了佛循环之后呢,后边的关卡会非常有趣啊,非常有意思,那我们不要着急,一步一步的来,那怎样去使用这个佛循环实现阶梯型的步骤呢? 好,我们开始做程序,这里呢,一定要先按一下回车键啊,不要从他的这个注射后边开始,要不然你的这个函数都是这个蓝色的,对吧?蓝色的就表示他是被注射掉的,一会的话不能运行。好,我们另起一行。 首先呢,我们这里需要加上一个负循环,我们需要循环几次呢?我们看一下啊,一二三走三个台阶,那么这里就是循环三次,很简单,对吧? 然后呢,我们再起啊,干嘛呢?首先让代步往前走,一二三走三步,对不对?那这里啊,我们要先点中他,然后呢,点击 style 往前走三步, 好,再按一下回车键,接下来大夫该右转了,对不对?那么我们点击大夫右转啊,再按回车键,再往前走一步,是吧?点击大夫往前走一步。好,那接下来,那这里大夫是需要进行左转,对吧? 哎,让我点了一下能量块,他也是有这个对应的代码,代码单。好,大夫是需要进行左转的。好,我们一起看一下这五行程序啊,那这里呢,我没有填东西,因为默认呢,他是前进一步的。好,我们一起看 快一点。这里呢,第十五关, ok 了。

我们来看第二关,那在第二关里面呢,我们会学到一个新的运算,叫做加法运算,当然这个加法运算和数学中的加法是一样的。我们都知道数学中的加号就是把加号两边的数值去给它加起来,得到一个新的结果, 比如说一加二,那么一加二整体的值就是三,那在程序里面也是这个作用,比如说 a 加一,就是把 a 和一的值加起来,那不同的就是前面这个等号我们在上节课已经讲过,那也就是说我们要把 a 加一的结果重新复给 a。 好,这里面呢,可能有的同学会不太理解,特别是学了这个一元一次方程的同学,可能会把它当成一个方程来解解方程的结果是什么呢? a 等于 a 加一,很容易就可以得到 a 等于零的结果,那这个是数学的结法。在程序里面,我们一定要记好一个等号,就表示把右边的值付给左边,那只有两个等号的时候,才表示两边是否相等的意思。好了,那讲完这个基本概念,我们一起来看一下这个题目。 地图里面我们会发现大夫是需要往前先走一步的,然后左转,再往前走两步,再左转,再往前走三步,然后转向走四步,我们会发现每一次大夫走的步数都是加一步的。那我们怎样用程序去表示一个过程呢? 我们看一下题目给的示意答案。首先呢,我们创建一个变量, a 等于一,然后呢带复去前进 a 步,也就是前进一步,接下来带复转向,带复左转,那么 注意看第八行这个程序, a 等于 a 加一,那么 a 的值变成了二,什么意思呢? a 原来是一, a 加上一之后呢?再把得到的新的值重新复给 a, 那么此时 a 就变成了二, 一定要记好等号是负值的作用。接下来让大夫再往前走一步,那此时是不是就走两步了, 然后再转,那再进行一个, a 等于 a 加一,那么 a 从二二加一,然后重新复给 a, 就变成了三,那依次类推,那么第三次的时候 a 就变成了四,那么最后一次再加一, a 变成了五。 看完上面的程序呢,我们看最后一行,这个注视,找出代码的规律,将上面的代码修改为否语句的, 也就是说我们需要用到破循环,循环的关键在于每一次执行的程序必须是一模一样的,我们注意看这几段程序啊,这三行,这三行,这三行好,这三行是不是一模一样的? 所以呢,我们可以用 for 循环来修改一下啊,我们在这里练习一下啊,直接点击,点击这个 for in rent, 那么需要循环几次呢?一二三四,循环四次,那么我们在这里就输上一个四啊。接下来我们在冒号后边直接去按回车键,这样的话就会自动回到 four 循环里边去了。 循环什么东西呢?刚才我们已经发现下边这几段程序都是一样的,现在我们把整体来做一个复制 ctrlc, 然后呢在这里进行 ctrl v 粘贴,那这里一定要注意,我们要把程序给它进行对齐,只有对齐的情况下才表示这三行程序是包含在数循环里面的。 好,那么后边呢,我们是不是就可以删掉了,来,我们把它全都删掉,来,接下来我们看一下整个程序的运行结果, 好了,五行十四步。

哈喽,同学们好,现在我们来看看第十五关的解题思路。那首先先画一下路线,那我们来看一下这个路线啊,这是一段路线。然后紧接着这是第二段, 这是第三段, 这是第四段,我们可以观察到啊,他这里的话,第一段重复里面呢, 我们一共有四个大的重复,那每个重复里面呢,还有小的重复,我们需要用到嵌套循环来完成它。首先呢,我们看一下这里两个直角,所以我们要重复两次, 飞船前进两步,然后呢,飞船左转,飞船前进一步, 飞船右转,这是走完一个直角,一共走两个直角,走到这个位置上。然后呢,我们这里呢是 前进两步左转,前进两步左转。我们可以再来一个重复,在里面前进两步 左转。那我们现在飞船恩是走到这个位置上,前进两步左转,前进两步左转,面向这个位置。但是我们第二次重复的话,要面向这个位置,所以 需要再进行一个左转。这样子呢,是完整的一次重复。这里呢一共用到了一二三三个重复啊,用的是嵌套重复去完成它。大的重复一共是有四个的。那我们点击一下运行看一下。 以上就是第十五关的解题思路。

我们来看第十一关,第十一关出现了一些新的内容,叫做飞板,飞板,像戴夫一样,我们也可以用鼠标去点他,我们把鼠标放在上面,可以看到每一个飞板的编号,那我们会发现他是从零开始编号的, 这个顺序呢,非常符合编程里边的顺序,因为编程里面所有的数组啊,包括列表,他们的第一个元素都是以零开始的。 我们看一下地图,那是不是需要飞板往前去移动,然后大夫通过飞板去收集这个能量,就可以完成这个关卡了?那所以后边这个弗莱尔兔啊,也是需要往前走一步的, 那接下来就是戴夫要往前走四步,这样的话我们就完成了这段的程序。这里边需要注意的就是飞板呢,只能够自己去走, 就是他只能去铺成道路,而不能拉着戴夫一起去移动。好,这是和非常不一样的,我们看一下这一关的。呃,代码演示, 第十二、十三,十四都是一样的,那我就直接演示了,只要我们把飞板的方向确定好,按步骤去把这个能量收集好就 ok 了。 好,第十四关。

我们看一下第十六关,那十六关的话就是刚才我们所讲的爱是从零开始变化, 那每一次变化呢? i 就加一,那比如说这个 iirig 八,那他就是从零开始啊,零一二三四五六七,一共八个数。好,那这一关我们想去过这个关卡,那需要让这个啊,零一二三啊,零一二三块飞板去往前走走两步。 好,所以这里应该是重复这样三次啊,重复这三次之后呢?这个路就铺好了,然后大夫再往前走,一二三四五六,一共是六步,那我们再加上一个大夫前进。六, 好,这十七关啊,同样的我们只需要去结合着 飞板用爱来表示,然后加上戴夫移动的部署,他其实就是一个环形的循环,只不过我们需要首先把飞板填进来,把路铺好。好了,我又来演示一下 第十八关,我们可以看到啊,这个飞板都是朝这个方向的,那这边飞板是朝这个方向的,那么就自然的联想到啊,我们把中间这个路给他铺起来,然后去走在一起,因为飞板不能拉着带负移动,对吧? 然后大夫怎么走呢?大夫是跨过这些陆地,然后走上来再绕,哎,这样路线我们就非常清楚了。好,接下来演示一下怎样走。 哇哦, 哈哈哈。

第三关,我们来思考一个问题,为什么程序里面要引入变量这个概念呢?因为所有的东西都是不断的在发生变化的,没有万年不变的东西,这个是一个普遍真理。 那试想一下,如果我们的程序只能够做一个三加三等于六的运算,那么换到另外一种情况,是不是我们的程序就没有任何价值,没有意义了? 所以我们一定要把变量这个东西掌握好,这样才能够用我们学到的知识去处理很多情况。好,我们一起来看一下这个程序变量的应用。 在这个地图里面呢,我们会发现,大夫是先要往前走一步的,然后两步,三步,四步,五六七八, 到,这是八步啊,规律很明显,那就是大夫走的步数从一,然后每次加一去变到八,那么程序怎样做呢?也非常简单啊,大夫往前走,然后大夫转向 好走多少步呢?这里要走 a 步,一定要记住,最后非常重要的,因为变量是要发生变化的,所以呢,我们最后要加上一个 a, 等于 a 加一,这样的话每次 a 就会加一,以此类推,我们运行一下看下效果。 第四关,这关呢,也是重复执行和变量的结合,我们把网格 打开,我们可以找一下规律,首先大夫是先上飞船,然后飞船往前走一步,往前走退回来,这都是一步,然后呢,飞船再往前走两步, 两步,两步,然后是三步,三步,三步。好的,那么我们就可以用一个变量 a 来表示飞船和带夫走的步数,那他们都是共同走 a 的, 那不同的是戴夫是需要退回来一下,那仅此而已,所以呢,程序也非常的清晰明了,我们认识一下 第五关规律还是非常明显,第一次大夫是走一步,然后是三步,然后是五步,然后 七步,最后是九步,好,一三五七九,所以呢每次是加二。那这里我用了一个加等的方法,那他,他表示什么呢?他其实就表示 a 等于 a 加二, 那这个是一个自家的符号,对于新手来讲,那我们可以使用 a 等于加二。那对于这个比较熟练的学生来讲呢?可以使用这个自家符号。 好,我把这个删掉,我们看一下程序的运行, 哈哈哈。

第十关,这关呢稍微有点难度,但是呢也非常有规律,我们仔细看一下地图,大夫沿着直线往前走的话,是每次要走两步,那关键就在他去两边收集能量的过程。 第一次呢要往前走一步,往右边走一步,第二次是往左边走两步,那第三次是往右边,然后第四次是往左边,第五次是右,他是左右左右的进行交替的,但是他的步伐呢,非常有规律,是一二三四五步。 他的关键点就在于我们怎样去让戴夫往左边走还是往右边走,给他区分开。 我们先把程序的整体架构做出来,那我们是需要先创建一个变量,这个变量表示大夫去收集能量所要走的步数一二三四五。那么然后呢,去进行一个重复,之前否循环五次, 那五次里边都干了什么呢?首先是大夫往前走两步,好直接走,然后呢大夫我们让他统一往右转吧,转完之后呢,大夫是需要继续往前走的,对吧?走完之后呢,大夫要干什么?是不是要退回来? 吹回来之后大夫是不是要转回去啊?那转回去是不是要往左边转?这样的话一次重复这样的内容我们就已经做完了,我们来分析一下,那这边是不是应该走 a 步? 那退回来是不是应该走负 a, 然后这个 a 是不是每次要加一,所以呢 a 等于 a 加一, 如果都是在同一边,都是在右边的话,走五次没有任何问题。那么现在是左右交替着走,那应该怎么办呢?在这个前进的程序里边,正数的话大夫会往前走,负数的话 这个大夫就会往后退。第二次,这个 a 加一之后,我们能不能让他去走一个负 a, 那走负 a 的话,他是不是就会往左边去走了?然后负负得正,两个负号,那就得到了一个正的 a, 他就会回到中间的路线。 那么第三次,这个负 a, 我们再让他变成 a, 那这样的话,他是不是就会往右边去走,然后再退到中间啊?依次类推。第四次,我们再让他走负 a, 第五次去走一个正的 a, 那这样的话,关键点就在于我们要找出怎样让这个 a 正负正负的去变换好,这一点呢?稍微有点超纲,我们需要创建一个变量 bb 来表示带夫前进的方向,当 b 是正一的话,那么带夫就是往前走,当 b 是负一的话,带夫就是往后退。 而且呢,我们需要这个 b 在一和负一之间不停的交换,不停的变换。那具体应该怎么做呢?好,我们把这个程序填进去,不管往左边还是右边走,都是走 a 步,我们希望这个 a 具有方向,所以呢,我们可以让他乘上这个方向 b, 那往后退是不是直接乘上一个 负一就可以了?同样也是 a 乘以 b, 好,那么 b 一开始是一,任何一个数乘上一都是它本身,那么第一次应该是没有任何问题的。那么 a 去加一之后, b 怎么变呢?好, b 等于 b 乘以负一,为什么这样去变化呢?我们做一个演算, 一第一次的话,必是一对不对,那经过一次循环,一乘以负一,会得到负一,第三次的话,负一再乘以负一,会得到一个正义。第四次的话,那么负一再乘以一,得到一个负, 第五次的话又得到一个正义,那这样的话就表示第一次是往前走,第二次是往后退,第三次再往前走,第四次还是往后退,第五次又往前走,那这样的话是不是就可以实现这个方向的变化啊?我们看一下程序运行的效果, 哈哈。

哈喽,同学们好,现在我们来看看第二十关的解题思路。那首先还是画一下前进路线,那大首先前进四步,然后大夫要取到这边的零件,然后又要取到这边的零件, 然后继续前进两步,去到这一行零肩前进两步, 取到这一行零件,前进两步,取到这一行零件,前进两步。那我们来观察一下这里有没有他动作是相同的,那我们可以观察到,哎,这里都是前进一条横线,然后再前进两步,前进一条横线,再前进两步, 他一共是重复了四次,这个动作是相同的啊,就只有这里他没有进入循环,那我们首先把这里先 做出来,待行走四步,那可以观察到,这肯定是要用我们的变量去完成的。重复了四次,副词 a 为 一,开始数一下是多少啊?一二三四五六七八,复制 a 为八,我们去一边的 重复四次,然后大夫是走到了这个位置,前行走四步,到这个位置,那大夫要进行一个转向,右转,左转都可以啊,大右转,大夫行走 a, 那大夫还要拿到这一个零件,他可以直接倒退回来,那就是大夫行走 a 乘以负二, 那现在是在这个位置,他还要回到中心点这个位置,才能去走下一段路线,所以大夫还要行走一个 a, 那现在大夫回到这个位置,那大夫的话还要进行一个转向,才能去行走下一段路线,大夫是左转,然后大夫是行走两步, 那我们再观察一下下一段路线,他跟上一段路线的对比,一二三四五六,那上一段是八,然后六的话就是真 就是减少了二,所以将 a 增加负二去进行下一次,最后点击一下运行。


这十九关稍微有一点不同啊,不同在哪里呢?就是他走的步数也是一个变化的步数啊,第一次是走一步,然后两步、三步、四步。好,那我们知道这个 i i 是从零开始变的,那我们以前也讲过,遇到这种情况的话,就把它变成 i 加一。 前面飞板的下标呢?还是 i 不用变啊?因为每一块飞板都是从零开始计算的,那思路也非常清楚,我们直接进行演示一下。 第二十关是不是一样的思路,我们先看一下整体的路线啊,就是这样一个环形的路线,这个是零号飞板需要往前前进一步,这个是一号飞板,他需要往前前进两步,然后二号是需要前进三步,四,三号是需要前进 四步。那么这个和持久关就非常的像了啊,每次就是让二加一。好,我们来演示一下。

哈喽,同学们好,现在我们来看看第二十关的解题思路。那首先还是画一下前进路线,那大首先前进四步,然后大夫要取到这边的零件,然后又要取到这边的零件, 然后继续前进两步,去到这一行零肩前进两步, 取到这一行零件,前进两步,取到这一行零件,前进两步。那我们来观察一下这里有没有他动作是相同的,那我们可以观察到,哎,这里都是前进一条横线,然后再前进两步,前进一条横线,再前进两步, 他一共是重复了四次,这个动作是相同的啊,就只有这里他没有进入循环,那我们首先把这里先 做出来,待行走四步,那可以观察到,这肯定是要用我们的变量去完成的。重复了四次,副词 a 为 一,开始数一下是多少啊?一二三四五六七八,复制 a 为八,我们去一边的 重复四次,然后大夫是走到了这个位置,前行走四步,到这个位置,那大夫要进行一个转向,右转,左转都可以啊,大右转,大夫行走 a, 那大夫还要拿到这一个零件,他可以直接倒退回来,那就是大夫行走 a 乘以负二, 那现在是在这个位置,他还要回到中心点这个位置,才能去走下一段路线,所以大夫还要行走一个 a, 那现在大夫回到这个位置,那大夫的话还要进行一个转向,才能去行走下一段路线,大夫是左转,然后大夫是行走两步, 那我们再观察一下下一段路线,他跟上一段路线的对比,一二三四五六,那上一段是八,然后六的话就是真 就是减少了二,所以将 a 增加负二去进行下一次,最后点击一下运行。

我们继续来看第十关,同样是考察重复执行的一个关卡,还是老方法,我们先来寻找他的最基础的路线, 那我们可以啊,很很容易的看出来,他是一个环形的路线,在环形的同时呢,两边有这个能量块,我们就需要让大夫啊,去把这两个能量块收集掉,对吧?四个路线上都有, 那么我们就可以看出这个路线他其实是什么样的路线,那是不是一个环形的,加上什么?加上王字形的一个组合变形,对吧?那是不是看 是不是王字形?好。那么这个题目应该怎样去做呢?首先第一步啊,我们是需要 大夫啊,转一下,把这个能量块收集,然后倒着走到这,然后再回到飞船上,然后呢,飞船带着这个再夫啊 往这走,走到这个位置,那接下来呢,是不是要重复同样的动作,对吧?那这样的话啊,这个解题思路就很明显了。 好,那也有同学会问啊,老师,为什么你第一次不让大夫啊,这个飞船走到这个位置去收这个呢?两块, 好,这个啊,我们就需要强调一下,重复执行是什么?重复执行必须要做一模一样的事情才可以重复,那我们想一想啊,如果让飞船先飞到这,然后呢?下一次我们再重复执行的话,让飞船是直接让他走三步吗?能不能走?肯定不能,对不对? 非常要这样走,这样走的情况下,是不是就和第一次不一样了?不一样的话,能不能使用重复之枪?肯定不能,对吧?所以我们一定要牢记这个啊,牢记这个概念,重复执行必须是一模一样的,这个动作才可以重复, 好了,为了实现啊,我的我们能够重复执行,那我们一起来看一下怎样做。首先大夫啊,这个左转或者右转都可以,那我就就让他右转吧, 然后走一步,收集了这个能量块,对不对?然后呢,倒着往后走,一二三走三步,那这里应该是减三, 然后呢,再往前走,走两步回到飞船。回到飞船之后,这里有一个问题啊,我先留一个悬念,那大夫要不要左转啊?重新回到 原来的位,原来在这个方向。好,先留一个悬念啊,先放这吧。好,大夫,回到飞船上之后呢,飞船要继续往前走啊,要怎么走?一二三四走四步,对不对? 然后呢,飞船转弯右转,再往前走一步,就会来到这个位置,对吧?就会来到这个位置。好,我们一起看一下, 好,注意看啊, 此时代夫他的方向是朝这里的,对不对?那飞船呢?飞船的方向是朝这的,那一开始飞船我换一个颜色啊, 一开始飞船是不是也是啊?怎么讲啊?飞船 是顺着这个这条边的方向,对不对?那大夫是朝哪的?大夫是不是也是朝着这个方向的?然后我们就发现了啊,他们的不同之处, 如果啊,我们在这加上加上左转,那么大夫和飞船走到这的时候,那么大夫就会朝向这个方向,就和原来的方向是一样的。那么这个时候我们能不能继续用重复执行呢?我们来想一想,好,我们重复重复执行的第一个代码是什么? 大夫,右转对不对?那么大夫右转右转之后是不是要朝这呢?朝这往前走,能不能走?不能,对吧?所以呢啊,这个左转啊,没有必要,那我们这个啊,就是一个状态的问题。 好,什么叫做状态的问题呢?就是我们每一次做完一个重复的动作之后呢,他的这个状态包括方向啊,包括这个距离,距离这个能量块有几格啊等等,这些都是要保持一致的, 虽然他不是一模一样的啊,但是他的这个状态是一样的,什么意思呢?就比如说啊,刚开始的时候啊,这个大夫和飞船他们的方向啊,都是一致的, 他们的方向啊,都是朝着这个方向的,对吧?那么我们走完一次循环之后呢,我们也应该让他们俩的方向去保持一致, 这样的情况下我们就可以继续使用重复执行了,如果方向不能保持一致的话怎么办?那你使用重复执行是不是就会出现问题, 对吧?好,那么这个是这道题的状态,那还有其他的题目有其他不同的状态,这个都需要我们自己啊,去用心去发现这些能够使用重复执行的点在哪啊?好,所以呢,这个左转啊就不需要了, 那细心的同学让我们来走慢一点,我们一起看一下,注意看此时大夫啊,他的这个方向是不是朝这呢?对吧? 那一开始是朝这的,那走完四次之后,每次大夫的方向都会和这个正方形的边长是平行的啊,就顺着这个边长的方向好了,那么接下来呢,我们就可以使用重复执行了,一共有四次啊,那么就重复 四次。好,我们看一下效果。 ok, 第十关搞定。