下载 App

开发日志 05|收获,让机器人读懂作物状态

10/151 浏览
这篇日志,我想把上一回的“判断”,用到一件更让人期待的事情上:收获自己种下的胡萝卜。
上一篇里,机器人已经可以根据土壤湿度决定要不要浇水。现在换一个问题:机器人经过一块田,怎样知道这里的作物能不能收了?
看着胡萝卜一点点长大,我们很容易产生“赶紧收起来”的念头。不过,田里有作物,并不代表作物已经成熟。如果只让机器人沿路执行收获,遇到还在生长的胡萝卜,游戏就会提示“作物尚未成熟”。
于是,这次我继续沿用单行农场,准备三块胡萝卜田。为了方便观察,演示里的初始生长进度设为 100%、50%、100%:两边已经成熟,中间还在生长。
TapTap
图1|Maker实机演示:两边的胡萝卜已经成熟,右侧积木判断“已成熟=成立”后再执行收获。
这段程序的规则是:如果脚下的作物已经成熟,就收获;否则,继续去看下一块地。
和上一回相比,循环、判断、移动这些积木仍然熟悉,改变的是机器人要观察的内容。上次读取土壤湿度,再和一个数字比较;这次读取“已成熟”,检查这个回答是否为“成立”。
我希望玩家慢慢发现,学会一段程序以后,还能换一个条件,把它用在新的事情上。同样的“如果”,既能决定要不要浇水,也能决定要不要收获。
做了 7年儿童图形化编程教学,我很希望看到孩子遇到新问题时,愿意试着用刚才学到的方法解决。能想到“换个条件就可以试试”,说明他开始理解积木之间的关系。
所以,今天仍然只看这一排土地。先确定起点和方向,再逐格检查成熟状态。运行前可以猜一猜:哪些胡萝卜会留下,哪些会被收走?运行后再对照地块,看看自己的理解是否正确。
TapTap
图2|完成巡查后的Maker实机画面:两边变回空耕地,中间的胡萝卜仍在生长,机器人货舱里装着4份收成。
这次巡查从 X=-1 出发,检查三块作物,最后停在 X=2 的草地上。两块成熟地各收获2份胡萝卜,中间那块则留在田里继续生长。
收获还有一个我想讲清楚的细节:收成先装进机器人的货舱。
地块上的胡萝卜被收走以后,土地仍然是耕地,可以安排下一次播种。货舱里的胡萝卜则需要运到交接箱或仓库,再执行入库。这样,田地、机器人和仓储设施之间,就有了一条能看得见的运输路线。
这一篇先把“成熟才收获”理解清楚。等农场扩大,玩家自然会遇到新问题:货舱满了怎么办?要不要收完一排再入库?能不能安排另一个机器人负责搬运?
我想把这些问题留在游戏里,让玩家从自己的农场需要出发,一点点改进程序。
种植、浇水、收获,单独看都是很简单的动作;加上状态检测和判断,它们就开始彼此联系。同一条路,面对不同状态的作物,机器人会做出不同的行动。
这也是我理解的“涌现”可以生长的起点:玩家掌握几条清楚的规则,再用自己的安排,把小小的一排作物变成一套持续运转的农场。
开发日志 06|收成去哪了?把田地、货舱和金币连起来截图
开发日志 06|收成去哪了?把田地、货舱和金币连起来
上一篇,机器人学会了“成熟才收获”。两边的胡萝卜被收走,中间还没成熟的那一块继续生长。田里看得出变化,可是金币没有增加。 收获的胡萝卜去哪了? 这一篇,我想沿着收成的去向,把农场里的下一段工作讲清楚:收获到货舱,运到交接箱,入库后再出售。 我做了7年儿童图形化编程教学,现在也在业余时间做自己的游戏。设计这段体验时,我希望玩家能看见程序到底改变了什么。地上的作物少了,机器人的货舱多了;货物入库以后,
官方
1 赞
《3D可视化编程农场》开发日志 01|做了 7 年教培,来做游戏了。截图
《3D可视化编程农场》开发日志 01|做了 7 年教培,来做游戏了。
# 《3D可视化编程农场》开发日志 01|从 7 年教培经历里,找到“涌现”的灵感 大家好,我是一名在教培行业工作了 7 年的青年从业者,也是一名业余游戏开发者。平时,我主要教孩子们学习图形化编程。 现在,借助 TapTap 制造这样的工具,开发游戏变得方便了很多。我也有机会把教学中积累的想法,慢慢做成一个大家可以亲手体验的作品。 看到这次聚光灯比赛的主题——**“涌现”**,我很自然地想到了自己
4 赞
开发日志 03|新手教程,从第一行作物开始截图
开发日志 03|新手教程,从第一行作物开始
第三天,我把新手教程的起点收到了五块地上。 前两篇聊了为什么做这个游戏,以及怎样从一颗种子走向第一段程序。这次,我想继续解决一个具体的问题:玩家第一次打开游戏,怎样迈出第一步? 做了 7 年图形化编程教学,我很在意入门时给孩子呈现的内容。完整的农场可以有很多机器人、作物和设施,但站在新手的角度,眼前每一样东西都要认识。我希望先给他们一个容易看懂、也能亲手尝试的小目标。 于是,游戏里有了单行模式:一
官方
1 赞
1 回复
开发日志 02|第一颗种子,也是第一段程序截图
开发日志 02|第一颗种子,也是第一段程序
大家好,我是一名在教培行业工作了 7 年的青年从业者,也是一名业余游戏开发者。平时,我主要教孩子们学习图形化编程。这次借助 TapTap 制造,我想把这些年积累的想法,做成一座可以亲手经营的机器人农场。 上一篇聊了这个作品和“涌现”的联系。这一篇,我想记录一个具体的起点:怎样让玩家从种下一颗种子,走到写出自己的第一段程序。 农场可以有很多东西:大片土地、不同作物、多个机器人,还有越来越复杂的自动化
官方
4 赞
1 回复
开发日志 04|机器人什么时候该浇水?学会判断截图
开发日志 04|机器人什么时候该浇水?学会判断
第四天,我想让农场里的机器人学会一件新事情:先看看土地的状态,再决定要不要浇水。 上一篇里,我们从一排五块土地开始,确定机器人的初始位置,用循环把相同的种植动作连起来。机器人能沿着这一排连续工作了,接下来也就有了一个很自然的问题: 机器人每次经过一块地,都需要浇水吗? 有的地刚刚浇过水,有的已经变干。如果机器人每次经过都浇一次,它虽然执行了程序,但程序还没有考虑眼前的情况。 这次,我用单行农场做了
官方
1 赞