最新消息:

少儿编程游戏CodeMonkey通关攻略:第81-85关

CodeMonkey 少儿编程 1808浏览 0评论

近日,各大高校陆续发布2017年自主招生简章。

(不要这么严肃好不好?好吧。。。)

其中清华大学招生领导小组给出的招生申请条件第一项就是:

“1.研究创作类:在科技发明、研究实践、文学创作等方面具有突出表现的学生。”

北京大学(引用2016年的内容)给出的申请条件第一项也是:

“1、有发明创造或参加科技类、人文社科类竞赛全国决赛或国际比赛获得优异成绩者;”

其他高校也是遥相呼应啊,比如中国第一所近代大学天津大学(北洋大学堂的前身)在今年3月27日给出的自主招生简章里就明确规定报名条件是:

“(一)高中阶段参加全国中学生学科奥林匹克竞赛(数学、物理、化学、信息学)、青少年科技创新大赛(青少年创新项目)等竞赛,获得省级赛区一等奖(含)以上;

(二)高中阶段获得全国中小学生创新作文大赛高中组全国决赛特等奖;

(三)高中阶段以第一发明人身份获得国家授权发明专利;

(四)在学科特长或创新潜质方面有突出才能或极大潜力(要求自附详细材料说明)。”

由此可以看出清华北大最先重视的就是有研究和创新能力的高中生,而天津大学作为传统工科强校,提出的四个报名条件里有三条是和创新,研究相关的能力,比如科技创新,发明,创新潜质。

这些能力并不虚,而是可以通过申请人的简历一目了然地看出来。

作为一个在理工科学习和研究将近10年的博士生,我看到一份简历,就能大概知道对方的水平在什么层次,是门外汉,新手,刚入门,还是老司机,额,错了,是老师傅。

因为简历可以反映申请人到底有没有做项目的经历,申请人的思想、喜好、以及目前所拥有的创新能力。因为创新能力可以后天培养,所以简历里还基本反映了申请人对研究的喜爱和努力程度。

那些在高校里做了几十年研究的老教授们呢?他们比我见过更多的学生,带过更多的研究生,基本上一眼就可以把这个孩子的潜力看得八九不离十。所以没有实力的申请人必然会被淘汰,而那些越早接触科研的学生,就会越有优势。

我在这里也提醒大家,如果想让自己的孩子在未来有一个好的出路,就算不申请名校的自主招生项目,也要尽早培养孩子的好奇心,和对科学研究的兴趣。因为孩子未来能解决多大的问题,直接决定孩子未来人生的高度。

关于这些我们未来再仔细探讨。

千里之行,始于足下。

我们要让孩子从培养兴趣和打好编程基础开始,学习CodeMonkey这个编程游戏里相关的编程知识。

今天我们继续学习“函数”王国的最后5关:第81-85关。

第81关

少儿编程游戏CodeMonkey通关攻略:第81-85关

本关一开始,猴博士告诉咱,不要担心,这一关我们只需要改一点就可以通关啦。

来看看这一关发生了什么事情:

少儿编程游戏CodeMonkey通关攻略:第81-85关

我们看到,小老鼠和要捡的火柴之间搁着一座木桥,它需要经过木桥,捡起火柴,然后往回走,再次经过木桥,从而把火柴放在火柴堆上。

这是右侧代码框里已有的代码:

少儿编程游戏CodeMonkey通关攻略:第81-85关

我先解释下这些代码:

第1-3行:定义goto函数,这个函数在我们之前的教程里已经有大量用处,这里不再解释。

第4,5行:注释行,告诉我们下面的crossBridgeTo这个函数需要被修复。

第6-8行:定义crossBridgeTo函数,函数的作用对象被定义为p,这个函数的作用是让小老鼠先走到木桥,再走到函数指向的对象p。所以第7行应该改为“goto bridge”。

第9行:注释行,说明第10-13行的代码没有问题。。

第10行:把crossBridgeTo函数作用于match,即火柴。

第11行:让小老鼠捡起火柴。

第12行:把crossBridgeTo函数作用于pile,即火柴堆。

第13行:让小老鼠放下火柴。

修改后的代码可以是这样:

少儿编程游戏CodeMonkey通关攻略:第81-85关

还等什么?点击运行,看看效果吧!

少儿编程游戏CodeMonkey通关攻略:第81-85关

通关!

少儿编程游戏CodeMonkey通关攻略:第81-85关

第82关

少儿编程游戏CodeMonkey通关攻略:第81-85关

这是第82关!

少儿编程游戏CodeMonkey通关攻略:第81-85关

在左侧的画面里,小老鼠和火柴堆在小河下方,而三根火柴在小河上方,小河上有一座木桥。

这一关与上一关的差别是,这一关里小老鼠需要去捡三根火柴,而上一关小老鼠的工作量只有一根火柴。

有了之前学过的for循环,别说三根,就算给我1亿根,我也能让小老鼠捡完。

我们先看看右侧的代码框。

少儿编程游戏CodeMonkey通关攻略:第81-85关

第1-3行:定义goto函数。

第4行:注释行,说明第5-7行的代码没有问题。

第5-7行:定义crossBridgeTo函数,即先走到木桥,再走到函数的对象v。

第8-11行:注释行,告诉我们通过crossBridgeTo函数,要让小老鼠带着对象z走到火柴堆。

第12行:开始定义collectThruBridge函数,对象用“z”代替。

第13行:注释行,需要修改,从而定义collectThruBridge函数。

第14行:注释行。

第15,16行:对于小河对面的每一根火柴,都用collectThruBridge函数作用于它从而把所有火柴都捡回到火柴堆里。

下面是我给出的一个解决方案:

少儿编程游戏CodeMonkey通关攻略:第81-85关

大家重点看第14-17行,因为collectThruBridge这个函数的目的是让小老鼠经过木桥,走到某根火柴,捡起它,回到木桥,走到火柴堆,放下捡来的火柴。

所以我的解决方案是:

第14行:经过木桥走到某根火柴那里。

第15行:捡起火柴。

第16行:经过木桥走到火柴堆那里。

第17行:放下火柴。

点击运行,看看效果吧(只放了一部分效果)。

少儿编程游戏CodeMonkey通关攻略:第81-85关

通关!

少儿编程游戏CodeMonkey通关攻略:第81-85关

第83关

少儿编程游戏CodeMonkey通关攻略:第81-85关

第83关,猴博士提醒我们,像islands,rafts之类的物体也可以作为函数的参数来使用。

其实这里的表述不是特别严谨,所谓函数的参数,应该改为函数的对象更为合适一些。

我们来看看这一关的画风是怎样的。

少儿编程游戏CodeMonkey通关攻略:第81-85关

在左边的画面框里,我们看到老鼠需要先走过6个小岛,即islands,走到火柴那里,然后捡起火柴,再经过6个木筏,即rafts,最后把火柴放在火柴堆上。

在右边的代码框里,我们看到已经给出的函数是这样的:

少儿编程游戏CodeMonkey通关攻略:第81-85关

第1-3行:定义goto函数。

第4行:注释行,告诉我们在第5-8行里有问题,我们需要解决这个问题,才能让小老鼠完成我们的目的。

第5-8行:定义gotoAll函数,这是因为goto函数只能一次做一个操作,比如goto岛a,那么只能走到岛a,走到岛a之后就不再行动了。但是这里一共有6个岛,除第一个岛之外,小老鼠需要走过5个岛。为了简单起见,就用gotoAll来执行这样的操作:让小老鼠走过所有的对象。那么我们看到,第7,8行有点重复第2,3行的内容,其实用一句“goto s”就可以代替了。

第9行:注释行,说明下面几行需要被修复。

第10行:让小老鼠经过所有的岛。

第11行:空行,这里小老鼠需要执行捡起火柴的操作,所以需要写上一句grab()。

第12行:让小老鼠经过所有的木筏。

第13行:空行,这里小老鼠需要执行放下火柴的操作,所以需要写上一句drop()。

我给出的代码如下:

少儿编程游戏CodeMonkey通关攻略:第81-85关

我们可以点击试试,看看效果!

少儿编程游戏CodeMonkey通关攻略:第81-85关

通关!

少儿编程游戏CodeMonkey通关攻略:第81-85关

第84关

少儿编程游戏CodeMonkey通关攻略:第81-85关

这一关我们需要借用乌龟来让小老鼠在小河上移动起来。

这难度比前几关要难一点,因为前几关的木桥是不能移动的。

少儿编程游戏CodeMonkey通关攻略:第81-85关

在左侧的画面框里,小老鼠在乌龟的背上,需要上去捡起火柴,然后返回到乌龟上,此时的乌龟可以被视为前几关里的木桥,小老鼠接着把捡到的火柴放在火柴堆上。然后乌龟此时移动起来,让小老鼠可以去捡其它几根火柴,此时乌龟的功能比前几关的木桥更强大,相应地,我们也需要写相关代码来操控乌龟。

以下是系统给出的代码:

少儿编程游戏CodeMonkey通关攻略:第81-85关

第1-3行:定义goto函数。

第4-6行:注释行,告诉我们需要做什么。

第7-10行:定义getAndReturn函数,对象为r。顾名思义,这里的r应该是火柴,我们需要走向r,捡起r,然后返回到出发的位置。

第11,12行:注释行,我们可以改动来延续第7-10行要完成的任务。

第13行:注释行。

第14-19行:for循环,让小老鼠把火柴m捡起并返回,走到火柴堆,放下火柴,走到乌龟背上,乌龟向左走8步。

我给出的解决方案如下:

少儿编程游戏CodeMonkey通关攻略:第81-85关

在第11,12行里,我让小老鼠捡起火柴,并且往回走d步。

这下子,getAndReturn函数就完成了让小老鼠“面向火柴”(turnTo r),“定义d为小老鼠与火柴之间的距离”(d=distanceTo r),“走d步”(step d),“捡起火柴”(grab()),“往回走d步”(step -d)的操作。

点击运行,看看效果吧!因为持续时间过长,我只放了一部分效果,以后运行时间越来越长的时候,我会把过程分成几个动图来显示。

少儿编程游戏CodeMonkey通关攻略:第81-85关

过关!

少儿编程游戏CodeMonkey通关攻略:第81-85关

第85关

少儿编程游戏CodeMonkey通关攻略:第81-85关

猴博士告诉我们,我们可以把函数的参数设为数字。

整体界面如下:

少儿编程游戏CodeMonkey通关攻略:第81-85关

在左侧的画面框里,我们看到小老鼠在最上方,三个乌龟分别趴在三条河里,这里我们需要让三个乌龟动起来,从而让小老鼠过河。

来看看已有的代码:

少儿编程游戏CodeMonkey通关攻略:第81-85关

第1-3行:定义goto函数,对象为t。
第4-8行:定义collect函数,对象为m,即让小老鼠收集m:走向m,捡起m,走向火柴堆,放下m。这里的m应该是火柴。

第9,10行:注释行,让下面的第11-13行代码(allTurtlesStep函数)执行“让所有乌龟前进d步”的指令。

第11-13行:完成allTurtlesStep函数。

第14行:注释行。

第15-18行:“所有乌龟前进10步”(第15行),“小老鼠收集火柴0”(第16行),
“所有乌龟后退10步”(第17行),“小老鼠收集火柴1”(第18行)。

我给出的代码是这样的:

少儿编程游戏CodeMonkey通关攻略:第81-85关

第11-13行要完成allTurtlesStep函数,所以我用一个for循环,让每一只乌龟都前进d步。

点击运行,看看效果!

这是小老鼠收集火柴0的过程:

少儿编程游戏CodeMonkey通关攻略:第81-85关

这是小老鼠收集火柴1的过程:

少儿编程游戏CodeMonkey通关攻略:第81-85关

通关!

少儿编程游戏CodeMonkey通关攻略:第81-85关

 

是不是很开心?

在这5关里,我们闯过了“函数”王国里的最后5关。这一共15关(第71-85关)的“函数”王国,让我们学会了如何定义函数来完成某些需要重复执行,先后执行的操作。这些函数的功能还是很强大的。

在接下来的15关里,我们将要学习如何利用“直到”(until)来完成一些不知道要循环多少次的循环指令。

少儿编程游戏CodeMonkey通关攻略:第81-85关

希望大家喜欢!

您必须 登录 才能发表评论!