1972年,图灵奖得主艾兹赫尔·戴克斯特拉曾说过:“我们使用的工具影响了我们的思维方式和习惯,进而也将深刻影响我们的思维能力。”简而言之,工具参与塑造了我们的思想。关于这一点,还有一句更加通俗易懂的箴言——手里拿着榔头,你瞅啥都像钉子,总想去敲上一敲。正所谓“身怀利器,杀心自起”是也。
本文要讨论的,就是一款训练思维的游戏《LightBot》,中文译作《编程机器人》或者《灯光机器人》。游戏中玩家会控制一台小机器人对它下达指令,目标是将地图内的蓝色砖块全部点亮为黄色。
听起来虽然简单,但实际玩起来异常烧脑。要知道所有和智商挂钩的游戏都有这样一个特点:前菜好过,戏肉难缠。玩家能够很快熟悉游戏规则,却被困死在一些丧心病狂的关卡内,正如这个图片的笑话所揭示的。
《编程机器人》的游戏过程类似于编程解题的套路,每个玩家都对这个译名深以为然,你可以对机器人下达以下几个基础指令:
前进:机器人向前走一格,遇到障碍将被阻挡。
点灯:机器人执行一个点灯动作,脚下的蓝色地砖将被“点亮”成黄色,黄色地砖将被“点暗”成蓝色,灰色地砖无效果。还有一些小机关,也可以用点灯动作触发。
左转:机器人面朝左转。
右转:机器人面朝右转。
跳跃:机器人向上可跳跃一格台阶,向下跳跃台阶数不限,平地跳跃无效果。
我们知道,一般的编程语言都有3种控制结构:顺序、选择和循环。除了顺序控制结构外,玩家还可以在某些关卡中将一些指令涂成特殊颜色,机器人站在相应颜色的地砖上会执行被涂色的指令,相当于编程中的“if…then…”判断。
玩家可以下达的指令是有限的,如何在有限的步数内控制机器人完成预设的任务目标则是挑战之一,这好比律诗需要在篇幅和格律的框架内抒发作者的情感意图,这才是最令人绞尽脑汁的地方。因此,游戏在多数关卡中都提供了函数功能。函数的编写方式和主程序并无不同,差异在于机器人只运行主程序,函数只有被主程序调用时才能执行。有了函数,主程序就可以多次重复调用它,用一个指令来完成一大堆操作。而且函数之间也可以互相调用,甚至函数还能调用自身形成递归,让循环一直持续下去。
加入循环功能之后是不是更有点编程的味道了?
从易到难,循序渐进
讲到这里,聪明的读者应该感受到了,这款游戏在娱乐之外还另有目的,就是本文开头提到的“用工具塑造思维”。
随着计算机运用的普及,越来越多的工作需要执行者引入一种“计算思维”来提升效率。什么是计算思维?我们可以参考某网站的定义:计算思维是运用计算机科学的基础概念进行问题求解、系统设计以及人类行为理解等涵盖计算机科学之广度的一系列思维活动。
简而言之,就是用计算机的逻辑来思考问题,进而设计出计算机能够理解的解决问题的方法。比如在《编程机器人》中,机器人听不懂“点亮所有蓝色砖块”的人类语言,玩家必须模拟机器人的行动逻辑来下命令:前进、左转、前进、跳跃、点灯、重复上一循环……
一道比较复杂的关卡,你需要编写两段程序并灵活运用循环命令,而且其中还包含了条件与中断,比如站在彩色砖块上点灯把机器人染色,才能执行相应色彩的指令
这种模拟引导的激发效果是很明显的,简单来说就是“心猿意马”——玩家心中的程序员很快就会觉醒,大脑好像会被慢慢植入一套软件,你的思维越接近一板一眼的机器人,过关的进度就越快,读代码的感受也越加直观。在我的认知中,唯有“珠心算”能与之相比。据学过的朋友回忆,玩珠心算的时候脑子里好像加载了一个“珠算”App,计算的过程就是拨弄虚拟算珠,工具对于思维的影响力可见一斑。
一则和程序员有关的段子,你看懂了么?
对于普通人来说,程序员仍是一类比较神秘的物种。尽管我们经常在网上看到一些段子,但流传最广的往往都是揶揄“程序员≈单身狗”的低等笑话,真正专业的梗通常需要一定编程基础才能看懂,所以也就剩下同行之间以自黑为目的的转播。低等笑话传得多了,连外人每每看到程序员的帖子都会习惯性地先黑一把。
《编程机器人》的遭遇也差不多,虽然没人黑,但它的玩法不像《2048》或者三消游戏那样简单直白,上手存在一定难度,因此尽管在一些小圈子里名气颇大,但在App Store上的经营还是蛮惨淡的。这款游戏被归类为适合9~11岁儿童,我居然玩得如此投入与咬牙切齿……
如今,有一类以教授知识技巧、提供专业训练和模拟为主要内容的游戏被称为“严肃游戏”。《编程机器人》或许身属其中,它训练玩家掌握最简单的计算思维,通过简约、转化和仿真等方法,把编程这种高大上的活计有趣地展现在普通人面前。当然,有趣不等于无脑,它就像那些内涵程序员段子一样,只会被少数人所钟爱。毕竟在我们这个国家,有七成网友都赞成“数学滚出高考”呢。
玩家或许都有过在游戏时注意力特别集中的体验,在玩《编程机器人》的时候,这种感觉尤为明显,机器人的步伐调试简直就像编程Debug,胸中如同有块垒难消,口中念叨着“走左跳跳灯”的密咒,戟指皱眉,狠狠按压屏幕,一次次失败,一次次又觉得下次尝试没准就能成功。要是过不了一关,心心念念的都是哪一步可以再压缩、哪一步可以纳入循环,十个女朋友都拉不回来。而若是成功突破一个星级关卡,那酸爽,真想对空鸣枪一百发。
乐趣是科学的内禀属性,只要把其中的趣味分出一丝到游戏中,就会让玩家产生强大的追求动机,把游戏性发挥到极致。玩1小时《编程机器人》,你的心情+2,智慧+1,注意力集中度+500,饥饿感消失。
不过说实在的,游戏自带的BGM机械感实在太强,根本不适宜人类思考,我忍了两分钟就怒关了,改为在后台循环其他乐曲。在此感谢肖邦的《降E大调夜曲》、巴赫的《G大调小步舞曲》和维瓦尔第的《春》,伴我度过许多个沉思的夜晚。
官方网站:lig
- Lightbot : Programming Puzzles
- 84.1 MB 通用版
- 人民币:18
- iTunes下载