一些玩物不丧志,能学到知识的游戏

2015年11月20日 12:11 0 点赞 0 评论 更新于 2025-11-21 19:27

我们大概都接触过一些有趣的益智游戏,它们能够锻炼人的思考能力,或者让人掌握一些知识。不过,知识的定义十分广泛,而且通过游戏来学习,效率并不高,无法代替专业学习,但游戏重在趣味性。

游戏大致可分为三类:

  • 第一类是在游戏过程中会出现真实知识的游戏,例如《大航海》《P 社四萌》。
  • 第二类是解决游戏中的某些问题需要玩家去查找学习知识,或自行想出算法的游戏,比如《Minecraft》的红石电路、各种策略游戏的布阵。
  • 第三类是虽无真实知识考察,但能够锻炼玩家通过逻辑思考解决问题能力的游戏,像 Valve 的《Portal》《braid》。

需要注意的是,这三类游戏并不是相互独立、互不重叠的,下面主要侧重于前两类进行介绍。

编程算法设计相关

之前提到过的《CodeCombat》就很不错,适合用于娱乐性学习。下面介绍几个有趣的非直接编程游戏,难度逐渐递增。

所谓非直接编程,指的是玩家可以控制放置某些基本物件,然后需要合理组合这些物件来完成任务。不过,其编程方式非常原始,远没有 C++、Python 那样便利,甚至玩家根本不能输入自己的代码,只能组合已有的元件,所以很考验逻辑和算法设计能力。

这类游戏和在线评测系统(OJ)类似,会有给定的输入,要求得到给定的输出。有时会有多组数据,只有全部通过才能到达下一关。玩家在游戏中可以体会从二进制(0、1 进制)开始搭建,到完成简单的输入 A、B 输出 A + B 的函数功能的过程,游戏过程中甚至会出现堆栈等数据结构。

毫不夸张地说,能够独立完成这些游戏的大部分关卡后,玩家可以学到很多经典而巧妙的设计方法,逻辑思考能力也会有所提升,这对于数学、计算机科学(CS)等学科的理论学习是有帮助的。

编程机器人:《Lightbot 1 & 2》

游戏操作方式 这个游戏的操作方式如下:将命令用鼠标拖拽到右侧空白格子里,按照从上到下、从左到右的顺序摆好。玩家的目的是让机器人通过自己设定的指令点亮所有的蓝色格子,即可过关。然后点击下方的绿色按钮,小机器人就会按照指令的顺序行动。

例如某一关,通过拖动放置了图中右侧的指令,点击开始后,机器人会先执行主函数,主函数调用函数 F1,机器人会进行跳跃、点灯、顺时针转、跳跃、点灯、顺时针转、顺时针转的操作。然后 F1 又调用自身,机器人继续重复 F1 内的操作,最终点亮所有蓝格子。

评价:《Lightbot》曾经是 Kongregate 上最火的游戏之一。后续关卡引入了函数递归和条件判定的规则,让游戏更具挑战性,2 代比 1 代要复杂一些(以上均为 2 代的游戏图)。这个游戏后期的某些关卡会变得有些困难,比如最后一关,可能会让玩家有一种不知所措的感觉。

游戏地址:

PS:该游戏已推出手机版,名字相同,可在 App Store 下载(请自行补充链接地址)。

《Boxes》

在体验过前面的游戏后,可以来尝试一些有一定难度的程序设计游戏,比如流程不算特别长的《Boxes》。

说明:玩家在游戏中扮演一个盒子工厂的盒子检测师,任务是把坏盒子识别出来,只让好盒子通过生产线。玩家可以通过放置不同的部件来识别盒子(后期还会有各种奇怪的物件,如 +1、 -1),每关最上方有黄色的框写明了过关要求。

部件如下:

  1. 传送盒子
  2. 盒子数字 +1
  3. 盒子数字 -1
  4. 检查盒子数字符号,不同符号运送方向不同
  5. 烧毁盒子
  6. 将盒子复制一份
  7. 当有盒子从上面经过时可以提供能源,使红色箭头等激活,盒子经过后就会停止供能
  8. 红色箭头一旦激活,能够无视其覆盖的元件,将盒子向指定方向运送(不激活时就和杂鱼一样不起作用)
  9. ???

别看部件功能看似较少,其实它可以解决很多问题,比如部件图中的元件就可以实现将盒子数字乘以 2 的功能,后面还能做到除法、加 50、返回十位数字等神奇功能。

评价:玩家需要通过条件判定、 + -1 等基础功能来实现关卡的要求,这要求思维比较灵活。当然,它比之前的游戏要难许多,特别是 19、20 关,还有挑战关卡。

游戏地址:Play Boxes, a Free online game on Jay is games

《Jahooma's LogicBox》

这款游戏和上面的《Boxes》类似,但玩法略有不同。玩家要控制字符串从黑色的圆盒子出发,然后按照箭头经过不同的盒子,最后从给定的方向离开。输入和期待的输出都已经写在右边,越来越像编程作业题了。

有趣的是,那些功能盒的功能是玩家自己设计出来的,类似于在第 3 关写了个函数,然后能在第 4 关用这个函数来完成目标。相比之下,它可以实现更多功能,如读写、字符串删除 / 写入,甚至还可以求字符串长度。

需要注意的是,它的种种功能都是基于简单的功能实现的,这充分体现了编程设计算法的强大性。

游戏地址:逻辑盒子,Jahooma's LogicBox

《The Codex of Alchemical Engineering》

在这个游戏中,玩家要给多只机械手臂进行符号编程,然后运输元素,最终完成炼金工作。点击“RUN”之后,机械臂会同时开始工作,因此时间的把握非常重要。

例如第一关两只机械臂的编程:(此处应插入第一关编程的图片)

评价:这个游戏的关键在于合理布局,后期会出现比较复杂的组合。

游戏地址:http://www.kongregate.com/games/ ... hemical - engineering

《Manufactoria》

这是一款真正的程序设计之作,难度较大,笔者至今未独立通关。当年借助攻略到达最后一关时,最后一关要求输入 A、B,用绿色点隔开,然后输出 A + B(二进制意义下),着实让人头疼。

游戏解决方案

这是来自 Matrix67 的博客的介绍:《Manufactoria》是非常好玩的自动机编程游戏,是真正意义上的程序设计游戏。游戏不但提供了完备的读写和流程控制功能,甚至还引入了随机测试数据。游戏很快就会引入算法的思想,因为玩家渐渐会发现,这些谜题并不是单靠模拟就能解决的;后面的谜题则越发困难,需要相当有技巧性的算法设计,对脑力绝对是一个大挑战。如果你热爱算法与程序设计,一定会爱上这个游戏。

游戏背景是在一个机器人工厂里,玩家要对机器人的芯片数据进行测试,机器人的芯片数据是一个由红、黄、蓝、绿点组成的序列。玩家需要判断这个数据是否满足特定的格式,或者把它按照规则进行改写。

游戏有一定难度,但部件很简单:

  • 传送带:把机器人移动到箭头指向的地方,注意传送道可以交叉,交叉时会依照机器人是以横向或纵向移入传送道决定机器人的走向。
  • 红蓝分支器:移掉序列中第一个点,然后判断它的颜色,如果是红色,把它移动到红色箭头指向的格子;如果是蓝色则移动到蓝色箭头指向的;其他状况(包括序列是空的)则移动到灰色箭头指向的。黄绿分支器和红蓝分支器原理相同。注意分支器从任意方向都可进入,不是只能从黑色粗线处进入。
  • 写入器:把特定颜色的点写到序列的末尾。

评价:游戏设计比较容易上手,但到后期,游戏要求实现的功能乍一看几乎都是不可能完成的,比前面的游戏要难很多,牵涉了一些自动机理论。

游戏地址:

额外推荐

  • 人工智能入门:《BugBrain 游戏中文教程》:这是一个让玩家构造神经网络来指挥一只虫子活动的游戏,虽然是比较老的游戏,但内容非常丰富,可以学习到神经网络的一些知识。
  • 简单的直接编程游戏
  • 手机游戏《Hacked》
  • 诸如《P 社》的游戏还有《MC》等,其他答案应该也有提到,像某些构思精彩的游戏,可参考以前的巨长回答:有什么神构思的游戏? - 陆 zz 的回答

这些编程游戏应该能够让人学到一些有趣的算法小知识。

作者信息

洞悉

洞悉

共发布了 3994 篇文章