哈喽,同学们好,现在我们来看看第九关的解题思路。那先把前进路线画一下,那大夫首先面向这个方向,那大夫可以走一个正方形,然后去拿到这三个零件。那他走完正方形 回来的话,大夫还是面向这个方向,然后去走下一段路线。下一段路线的话,大夫是后退两步,然后再走。这里也是一段重复的路线, 重复了同样是四次,那这里运用了两个重复,那我们可以把它分段来执行,先执行第一段正方形的路线,大夫先行走三步,然后大夫进 行左转,这是第一段路线,走完一条边,他重复了四次,那我们回到这个位置,大面向的方向还是一样的,那第二段重复路线,他同样是重复了四次。那我们大夫是后退两步, 然后大夫要进行一个转向,大大夫右转,大夫行走两步, 那现在大夫面向的是这个方向,他要面向回来这个方向的话,又要进行一个转向,那大夫要左转, 然后最后点击一下运行。 以上就是我们第九关的解题思路。
粉丝1260获赞2217

第十关,这关呢稍微有点难度,但是呢也非常有规律,我们仔细看一下地图,大夫沿着直线往前走的话,是每次要走两步,那关键就在他去两边收集能量的过程。 第一次呢要往前走一步,往右边走一步,第二次是往左边走两步,那第三次是往右边,然后第四次是往左边,第五次是右,他是左右左右的进行交替的,但是他的步伐呢,非常有规律,是一二三四五步。 他的关键点就在于我们怎样去让戴夫往左边走还是往右边走,给他区分开。 我们先把程序的整体架构做出来,那我们是需要先创建一个变量,这个变量表示大夫去收集能量所要走的步数一二三四五。那么然后呢,去进行一个重复,之前否循环五次, 那五次里边都干了什么呢?首先是大夫往前走两步,好直接走,然后呢大夫我们让他统一往右转吧,转完之后呢,大夫是需要继续往前走的,对吧?走完之后呢,大夫要干什么?是不是要退回来? 吹回来之后大夫是不是要转回去啊?那转回去是不是要往左边转?这样的话一次重复这样的内容我们就已经做完了,我们来分析一下,那这边是不是应该走 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 乘以负一,为什么这样去变化呢?我们做一个演算, 一第一次的话,必是一对不对,那经过一次循环,一乘以负一,会得到负一,第三次的话,负一再乘以负一,会得到一个正义。第四次的话,那么负一再乘以一,得到一个负, 第五次的话又得到一个正义,那这样的话就表示第一次是往前走,第二次是往后退,第三次再往前走,第四次还是往后退,第五次又往前走,那这样的话是不是就可以实现这个方向的变化啊?我们看一下程序运行的效果, 哈哈。

我们来看第六关,第六关的地图非常的明显是阶梯型的重复执行, 题目中要求我们尽量的使用两个变量去完成,还有一个提示就是在复循环开始之前呢,可以加上一个命令,让我们一起分析一下地图的规律。如果用两个变量的话,那么就是一个变量表示 y 方向上的部署,另另外一个变量呢就表示 x 方向上的部署。 来,我们数一下,飞船是需要往前走,一二三四五,然后是一二三,然后一二一五三二一, 看上去好像并没有什么规律,对吧?那我们看一下 x 方向, x 方向首先是一,然后二三四。好,那么刚才提示的我们可以在 在负我循环之前加上一个命令,那我们是不是可以把五给它变成一,加上四呢?这样的话我们的思路就比较清晰了,我们设置完变量之后呢,先让飞船往前走一步, 接下来就是用重复直行来控制飞船的啊移动,首先这个飞船是要往前走的,然后呢飞船要进行转向,第一次是向右转,走完之后, 然后呢继续转,那第二次是要往左边去转向的,那这样的话就可以走一个阶梯型的路线,所以呢第一个空我们来填上,哎, 第二个空非常前进。 b, 我们运行一下看一下结果。 好,那么这里的代码我们多了四行,那么这个程序能不能进行优化呢?当然可以的,我们在讲 for 循环的时候说过这个 i in run 四,它是什么意思呢?它表示 i 在零,然后一二 三这四个数里面去发生变化,也就是说爱是从零变成一,再变成二,再变成三零一二三,刚好四个数,重复针四次, 也就是说这个负循环他本身自带的就有一个变量。哎,那这样的话,我们是不是就可以减少定义一些变量,对吧?刚才我们已经发现了这个规律啊,规律是四三二一, 这边有一个一啊,四三二一,然后是一二三四,那么一二三四 很容易啊,就是爱加一,因为爱是从零开始的,那么零加一就得到一,那下一次爱变成一,一加上一得到二,依次类推。那么四三二一能不能用爱去表示呢?当然也是可以的啊,可以用一个四减爱。 一开始二为零的时候,四减二是不是等于四?那么当二变成一的话,四减二就得到了三,当二变成二的话,就得到了二,以此类推。所以呢,我们可以把 ab 这两个变量都给他省略掉了。 好,然后呢,我们用 i 来表示,这个 a 就不要了, a 就变成四减 i, 那 b 呢? b 就变成 i 加一。好,这样的话这个 a 和 b 的变化也不需要了,这样的话,我们是不是就节省了四行程序啊?我们一起运行看一下效果。

第十六关,我们这个关卡同样也在这个经模式中见过,我们也不难看出他是这样一个阶梯型的路线,对吧?那如果有的同学会想这么走, 这样的话是不是就不太有规律,是吧?所以呢,我们采用这个红色的路线啊,走一个阶梯形。好,首先还是需要加上负循环,那循环几次呢?一个,两个,三个啊,这里需要循环三次。 好,首先第一步大夫是需要进行转向的,这里是需要左转,然后呢,大夫在前进,对不对?前进两步,然后大夫在右转, 用鼠标点着,还是非常方便的啊,如果有这个打字很快的同学呢,当然你是可以使用这个键盘去 输入的。对,还是需要再走两步,这样的话阶梯型的路线就走完了。一定要记住阶梯型的格式啊,就是一个左转,一个右转,加上前进。好了,看一下程序。

通过第六关的学习,我们可以借助 for 循环里面的这个变量 i 去做一些啊优化。 那么我们看一下第七关,第七关同样还是一个阶梯型的地图,路线还是很清楚啊,就是一个左转,一个右转,一个是 left, 一个是 right, 那么怎样走呢?我们会发现这个大夫一开始是背对着这个路呢,那 我们就可以考虑让大夫去全程倒着走,那倒着走是不是要用到负数?我们看一下地图的规律, 首先往这边啊,不用走,那直接要转,转完之后是往这边走一步,那往这边是走两步,我标出来,然后再往这边是两步,正往边是四步,然后三步,六步,然后我们会发现往外方向上走是一二三, x 方向上走是二四六,他们成一个二倍的关系,所以这里我们用一个二乘以 i 加上一,那么这个负号是表示倒退的 i 减一是怎么来的? 或者二加一怎么来的啊?当然在外方向上是一二三的变化,我们在上个关卡已经说过了,只要是这种一二三的都可以表示成二加一 啊,那这里面前面加上一个符号啊,本来是这个样子,那么去掉括号之后呢,就会变成负的二减一,这个就是第七关的程序,我们运行一下, 那我们看一下第八关,这个地图还是非常的简单,思路也很清楚,我们只需要让飞船走到中间,然后再往这边走 a, 然后倒退二 a, 再往中间走 a, 那么然后 飞船继续往前走,一直这样去走下去,那么这个 a 是不断发生变化的,每次 a 是减二的,所以呢,我们在最后加上一个 a, 等于 a 减二。好,我们看一下程序的运行。 第九关和刚才第八关非常的像,我们还是分析一下地图的规律。首先大夫是需要往前走的,先走一步,那么再下一次走的话是两步,然后三步四步,一二三四的规律, 一二三四,那么往两边的话是三四五六。好,三四五六的规律 我们刚才已经讲过,碰到一二三四就把它干什么,是不是可以把它当成二加一, 那么三四五六是不是也有规律啊?可以把它变成二加三,那这样的话,不管他往回倒退多少,我们给他乘上一个负二就可以了。所以呢,这个题也非常的清楚,我们直接运行一下程序。

好,我们继续看一下第九关,那么第九关同样我们还是先分析一下他是由什么样的这个基础的重复,重复之间类型组成的, 让我们可以明显的看到这个是一个环形,那这边是什么?这边是阶梯形,非常的明显,那么这个思路啊,我们也非常的清晰,我们一起来把这个程序做一下。 首先呢啊,大夫脸是朝着啊这个 x 的正方向,那我们就让 x 就让这个大夫直接行走,行走一二三啊三步,然后左转, 那我们这里需要思考一下啊,大夫,最后啊,他是不是还要回到这里,对吧?所以呢,我们这里需要重复执行 四次啊,让他走一个完整的圈。好,我们看一下 是不是回到了这里,回到这里,并且他的方向啊,他的这个方向是和原来一模一样的,现在我们就可以啊,继续把他啊,继续让他把这个阶梯型的走完。好,我们接着接着来做。 那这一段程序呢,我们让他走到了这,走完了这个圈啊,然后呢让他走这个阶梯型的,那既然他啊这个方向是朝着这里的,我们就直接让大夫倒着走。好大,大夫倒着走,行走负二, 看到复燃之后,那我们可以让他左转,也可以让他右转,如果是左转的话, 我们一起看一下啊,如果是左转的话,他是不是要往这边转?那方向就是朝这,那大夫是需要继续倒着走,对吧?然后这边继续右转,嗯,可以, 我们再看一下,如果,如果到了这,我们让他右转,右转之后大夫是不是得正着走,对吧?走到这之后呢?干嘛 走到这之后,如果我们啊还让他正着走的话,是不是要右转?右转的话两个右转我们是不是就不能用阶梯型? 所以这时候呢,我们啊如果正着走的话,走到这啊,我们还是要让他左转啊,左转让他面朝这个方向,然后就可以倒着走啊,那这个根据我们个人的这个情况啊,如果你想让他左转,那么啊后面后面的内容一定要 把它分析清楚。好,我这里呢左转右转都可以啊,倒着走两步,那么我就让他右转, 右转之后,然后是正着走两步,对不对?然后呢左转,左转之后就可以倒着走,对吧?我们看一下啊,一共是几个台阶?一个,一个,两个, 三个四个,对吧?所以呢我们要重复之前四次啊,把它放进去, 我们看一下效果 好了,第九关。

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

同学们好,现在我们来看看第十五关的解题思路。那首先先画一下路线,首先飞船前进三步,取到这个零件,然后飞船需要进行一个转向,飞船是 左转前进四步,走到这个位置,那我们优先取离飞船近的零件,那我们飞船转向取到这个零件,然后呢?飞船是不能后退的,所以要进行两次转向右转,再右转去取到最后这个零件,然后我们按照画好的路线去走一下 飞船,首先是前进三步,然后飞船左转, 飞船前进四步,飞船右转,飞船前 前进两步,然后到这个位置了,那飞船要进行两次转向,飞船右转再右转,然后飞船前进一二三四五,飞船前进五步。 最后点击一下运行。 以上就是我们第十五关的解题思。

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

同学们好,现在我们来看看第十关的解题思路。那我们先画一下零件的分布位置,那零件的话他是这样子去分布的, 那再画一下飞船的前进路线, 飞船的前进路线是这样子的,飞船先前进这一段路线,然后右转前进一步,然后再进行下一段, 那我们可以看到飞船它其实是走了一个正方形,所以是重复了四次。那我们首先先要取到这一个零件,那我们要让大夫进行一个 转向大右转,大夫行走一次已经取到第一个零件了,那要取到后面这个零件的话,我们需要后退回去,大夫行走负三步,那取到第二个零件了,那我们的大夫还要回到飞船上。大夫行走两步回到飞船上, 那现在面向的方向是前方,那我们飞船是前进一二三四四步,然后飞船还要进行一个转向,飞船右转,飞船前进一步, 那现在就是走完了第一段的重复路线,那它飞船是相当于走了一个正方形,所以它是重复 了四次,点击一下运行。 以上就是我们第十关的解题思路。