首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

不开电脑玩编程:带孩子玩转火星探测模拟游戏

上周小猿亲身体验了ThinkFun新款编程玩具系列——//CODE的第一款:On The Brink,今天带你玩转//CODE的第二款:Rover Control。

Rover Control是一个火星探测模拟游戏,可以帮助孩子掌握编程中的IF/ELSE判断语句以及循环。

1

产品清单

探测器

火星探测的主力,能够依据编程路线探测。

充电站/数据上传站

一些危险的探测,需要探测器停在充电站/数据上传站,充电或上传数据。

开始/结束令牌

火星探测开始和结束的位置。

样本储存卡

高级任务要求收集一定量(最多5个)的样本,通过移动黑色塑料标签,记录样本数量。

和On The Brink一样,挑战手册的40关,也是按颜色来区分难度。

1-10关为绿色,对应绿色标记的地形图,只有一个探测器,也不需要充电站和数据上传站;

11-20关为黄色,对应黄色标记的地形图,仍然是一个探测器,大部分关卡不需要数据上传;

21-30关为蓝色,对应蓝色标记的地形图,开始出现样本收集任务;

31-40关为红色,对应红色标记的地形图,两个探测器都要用上。

2

简单关卡示范

以第一关为例:

左上角是此次闯关要用到的指令卡,包括一个名为R1的探测器,可以看到检查点(checkpoints)、加油站、数据上传站都是灰色的,表示这次没有检查、加油和数据上传任务。

右上角给出了起点和终点,以及部分线路。

下方是需要执行的线路顺序,即从起点到终点必须是红-蓝-红的顺序。

对照关卡示意图,找到绿色标识的地形图,将紫色探测器R1和起点放置于数字7,终点放置于数字9,用蓝色记号笔把固定线路画出来。

玩家的任务是在地形图上用彩色笔把路径涂上颜色,使得探测器可以按照规定好的路线(course)从起点走到终点。

注意:每条路径只能涂一种颜色,且不能修改挑战手册上已给出的路径颜色。

观察起点7和终点9,会发现要使探测器从7走到9,中间经过3条路径,显然只有一种走法:7→4→1→9,把这3条路径分别涂上红、蓝(初始已涂好)、红,就算是过关啦。

如果不放心,可以查阅答案手册。

3

复杂关卡示范

这次我们找到了一个能同时用上加油站、数据上传站、样本储存卡的关卡来示范。

看第27关:

这个关卡用到一个探测器R1,其中11、6、5、4、10是检查点,4、5是加油站,6、10是数据上传站,地形图是3。

在地形图上摆放好相应的指令卡:

如图将探测器R1和起点放置于11,终点放在1,4和5放充电卡,6和10放数据传输卡。

下面,重点来了,如何根据挑战手册给出的路线条件,找到正确的路径呢?

关于检查点,多说几句,探测器必须从第一个开始按顺序经过,具体到第27关,就是11→6→5→4→10。

这个路线图是什么意思呢?

它表示探测器从11出发,第一件事就是样本储存决策,能看到它有两个去向,一个是拇指朝上,表示收集齐5个样本,指向终点;一个是拇指朝下,表示没收集齐5个样本,需要继续收集,所以指向样本+1;

接下来出现了一个位置标,也就是检查点,如果目前所在的位置为检查点,判断是否有充电卡,拇指朝上表示有充电卡,执行先红后绿的线路,拇指朝下表示没有充电卡,继续检测是否有数据上传卡,有就走先绿后蓝线路,没有走先蓝后红线路,目标是到达下一个检查点。

执行完毕可以看到虚线箭头,都指向样本储存决策,即继续判断是否收集齐5个样本。

现在开始移动探测器。

数字11是检查点,收集1个样本后,发现这里既没有充电卡也没有数据上传卡,走先蓝后红线路,目标是检查点6,也是11→9为蓝色,9→6为红色。

循环进入样本数量检测,小于5,继续收集样本+1,因为6有数据上传卡,没有充电卡,走先绿后蓝线路,目标是检查点5,也就是6→3为绿色,3→5为蓝色。

循环进入样本数量检测,小于5,继续收集样本+1,实际收集了3个样本,因为5有充电卡,走先红后绿线路,目标是检查点4,也就是5→2为红色,2→4为绿色。

回到样本数量检测,3

我们先试着走4→7→10,4→7为红色,7→10为绿色。

回到样本数量检测,4

如图,有没有发现什么问题?

10连接了两条绿色的路线,这在游戏中是不允许的。

此路不通,换条路走!选择4→0→10这种走法,4→0为红色,0→10为绿色。回到样本数量检测,集齐5个,到达终点。

最后的路线就是这样:

突然有一种被自己拯救的感觉。

4

孩子能学到什么

一个程序员爸爸在带领自己5岁半儿子试玩后,总结道:

这款游戏的程序规则比上一款要复杂很多,对于孩子来说,就算不玩解题,如果能按照画好的路径正确说出程序的运行过程,也是非常不容易的一件事。

在这款游戏中,会大量运用回溯(backtracking)的方法。回溯不但是一种人类思考问题的方法,同时也是一种重要的计算机算法(algorithm)。

这款游戏的解谜过程就是从若干种可能的路径中搜索出正确的一种,而在搜索的过程中我们会遇到分叉,也就是从某一步开始可能有几种不同的走法,需要从其中一种开始尝试,如果尝试到最后不成功,就需要回退到分叉的地方,继续尝试其他的分叉,直到最终找出正确的解。这种方法也叫深度优先搜索(depth-first search, DFS)。

游戏题目中给出的“路线”,实际上就是真正的编程中经常使用的“流程图”(flow chart),通过玩这款游戏,孩子就潜移默化地记住了流程图是长啥样的,是干啥用的,即便将来不去学编程,流程图在很多其他方面也都可以派上用场,比如项目管理、活动组织等等。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180403G1SI4800?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

相关快讯

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券