如果不得不给孩子玩手机、iPad,干脆玩这些编程游戏

如果不得不给孩子玩手机、iPad,干脆玩这些编程游戏

现在的小朋友生在智能手机的时代,个个都会玩手机。而小朋友玩手机多半是玩游戏。

一个常见的现象是父母们一方面不得不把手机或 iPad 给小朋友玩,一方面又担心小朋友沉迷游戏。

我自然也有此担忧。在我儿子3岁以后,我开始让他接触手机、iPad。在四岁以后,会经常给他安排使用手机或 iPad 的时间。

那么到底给他玩什么呢?既要能满足他娱乐的需要,又能规避到沉迷游戏的风险呢?

我本人作为一个程序员,思前想后,有两点感想:

很多游戏纯粹是为了打发时间(比如跳一跳),或者有专门的针对人性弱点的设计(比如很多先打怪升级、再玩家互殴的网游),这些都是不适合小朋友的。我希望找些益智游戏,而且不容易上瘾的。这样在娱乐的同时,还能有些其他方面的锻炼。

突然,我灵光一闪——找点编程的游戏给他玩,不是挺好的吗?一来益智,二来说不定对他未来有点实际价值,三来我自己还能亲自指导。

于是我上网搜了一堆,然后我提前玩了一圈,筛选出以下5个编程游戏,在我儿子4、5岁这两年有规律地安排给他玩了。他非常开心!也都非常喜欢!于是我写本文推荐给大家!

正文开始之前,请注意以下几点:

我本人挑选编程游戏,要求第一必须能在 iPad 上运行,第二图形化编程,不需要小朋友输入任何字母,第三画面精美。这5个游戏的难度基本是递增的。每一级难度,我只找了一个,因为我觉得那就够了,不需要在同一个难度反复地玩。所以,可能还有些别的游戏也不错,但我并没有收录。有的游戏免费,有的游戏收费。我本人反对盗版。我觉得花几十元买个游戏,孩子可以玩两个月,实属物美价廉!所以,希望大家支持正版!

闲话少说,正文开始!

1 Code Karts

这款游戏的内容非常简单,其目的是根据每一关的地图规划好小车行进的路线,然后将这个规划写成程序。比如向上、向下、向左、向右等,也可以写很简单的循环。

对成人来说,这款游戏是非常弱智的!但对小朋友不然。

很多朋友觉得编程上来就要学条件判断、循环、函数、变量等等。对大孩子可以这样。但对小朋友来说,第一件要学的事情应该是这个——机器按照预先写好的程序,一步一步执行。

这款游戏能非常好地达到这个目标!学习曲线非常平缓!通过一关又一关的反复练习,让小朋友很容易领会到这一点。

我儿子玩的时候是4岁,几乎毫无困难,教了一两关,后面的基本自己全部搞定。所以我觉得3岁的小朋友也可以尝试一下。

通过这款游戏,要学会两点:

根据目的,先设计好程序,再编程和运行。这一点非常重要!编程不是走一步看一步,而是先计划好,再编。程序写好之后,机器会如实地一步一步执行。

2 Lightbot Hour

这款游戏的目的是写程序操纵机器人在每一关的地图上行走,然后将蓝色方块点亮。

这款游戏比上一款稍微难点。

首先,地图是立体的。其次,需要小朋友考虑左转右转,而非上一款的向上向下。

在编程技术方面,除了基本的逐行执行外,还涉及到函数和循环。需要小朋友将重复的步骤提取出来作为一个函数,再反复调用此函数。面对像如下这种复杂点的地图,要先规划好一个可以产生重复步骤的路线,对小朋友来说是有难度的,可能需要父母帮助规划路线,再由小朋友编程实现。

我儿子玩的时候,除了少数两三关需要我帮助,其他都能自己搞定,也能自己找到重复步骤以抽象成函数。

这款游戏说是会用到循环,但其实是用的尾递归,即在一个函数的最后一行调用此函数本身。如下图中子函数 P1 对自己的调用。

这是我不喜欢这款游戏的地方。因为对我们程序员来说,在实际工作中通常是禁止使用尾递归的。

最后,这款游戏的出品方开发了多款类似的游戏,这款是免费的,还有付费的。我猜付费的应该是关卡更多或更复杂,如果大家喜欢这款游戏,可以试试他们公司的付费游戏。

下图为我儿子在玩这款游戏:

3 Kids'n'Code

这款游戏也是操作机器人,在各种地形条件下完成抓虫子、推箱子等任务。

其有别于前者的最大特点是可以写出真正的循环(但是不能写出双层循环)!如下图所示的 Repeat*4 和 Repeat*3:

写循环需要主要2点:

提前规划,以让路线适合写成循环。每一次循环开始前,机器人要面对情况是完全一样的。所以,每一次循环结束的时候,要让机器人进入到下一次循环的第一步。

我儿子经过几关的训练,完全能够自己设计并写出一个循环。我感觉对他的脑力是很强的锻炼!

这款游戏最大的缺点是 bug 太多!常常会运行异常,甚至闪退。而且如果程序写错了,想要调整,操作会非常不方便!不知道最近的新版本这些问题改善了没有?

4 SpriteBox

这款游戏刚开始的时候不太像编程游戏,更像超级玛丽,需要操作一个小人蹦蹦跳跳吃星星。

当小人顶了一个黄色方块后,会出现编程区域,要求玩家在特定的地形下,达成某种目标。

这款游戏在编程上最大的特点是可以写出嵌套循环。比如下图所示的两层循环,内层循环2次,外层循环4次。

这对小朋友来说是很强的锻炼。父母陪同的时候,要教小朋友在编程前仔细观察,计划出适合两层循环的方案,然后再开始动手。

后面有的关卡很像我大一时C语言课的练习题。对小朋友来说,如果能搞定,会有很大的成就感!我儿子就搞定了其中大部分。

如果要给这款游戏找一个缺点的话,我认为是其不够严谨。某些时候,从程序员的角度来看一段程序有小瑕疵,应该算是bug,但是因为游戏的一些设置,其依然能够运行出期望的结果。

5 Human Resource Machine

这款游戏几乎可以被称之为包装成游戏的严肃编程课!

其整个游戏场景是模拟的计算机内部结构(当然是简化版本)。目标是按照一定的要求,编写程序,将左边的数字和字母,通过一定的运算方式进行运算后,将结果放到右边。

比如下面这道题是把左边的所有0放入右边:

比如下面这道题是把左边所有的数字的绝对值放到右边:

这款游戏可以写出真正的循环和条件判断,也会涉及到变量的使用。比如下图中右侧各种箭头就是代表了程序的走向,看着晕不?

这款游戏使用的编程语言是汇编语言风格。如果你不是计算机专业人士,那我解释一下——编程语言有很多种风格,越上层的语言抽象得越多,越接近人的思维,而越底层的语言抽象得越少,越接近机器的工作方式。汇编语言是最底层的语言,其并不见得比其他语言难,但要求人的思维方式要有较大转变。

所以,这款游戏肯定得父母陪着玩,对父母的要求很高!父母不一定能玩下来。我本人作为一个程序员,汇编语言倒难不住我,但很惭愧地说,虽然我玩通关了,但我还差三颗星星才能拿到满分。

这款游戏的学习曲线很陡峭,前面几乎每一关都会引入新元素,根本不给你消化的机会。对小朋友来说,几乎不可能玩一关就学会一个新东西。所以,我会让我儿子玩一关,休息几天,再重玩这一关。直到我感觉他明白新元素怎么使用了,再进入下一关。

最后,这款游戏对数学的要求很高,到后面需要算加减乘除、求最大公约数、算质数之类的。我儿子只玩到16关(大约40%),我就跟他商量不再玩下去了,而是等他数学知识足够了,再继续玩。

总之,这是一款对程序员来说也不容易的编程游戏,小朋友要完全独立玩下来,我感觉怎么也得10岁以上。所以,不着急,慢慢玩吧!

6 总结

编程游戏我儿子玩下来,我感觉有两个很大的优点:

脑力得到一定的锻炼,尤其难的题目,需要转换思维方式,是一种很好的大脑体操。不容易沉迷,因为难的题目做一次就是二三十分钟,做完会感觉到有点累,不一定愿意无休止地玩下去。而且编程游戏的激励非常正面,就是攻克难关获得成就感。这和有些网游利用人的心理弱点对玩家进行刺激是很不一样的。

但是,不管怎么说,也不宜长时间无节制地玩游戏。我以前写过美国儿科学会对于儿童使用电子产品的建议(文末附有链接)。

我建议大家一定在大的控制原则之下,再安排孩子的游戏时间。

最后,给大家放一个GIF。这是去年年底微信小游戏跳一跳风靡的时候,我想给儿子展示一下这种纯打发时间的游戏没啥意思,咱们可以追求更高层次的娱乐。于是就写了段程序,用程序来自动玩跳一跳,这样就不需要人来点击了。用程序玩游戏根本不会失误,而且几乎每次都能跳中中心。

我给我儿子看了这神奇的一幕后,他说——那我要赶紧学编程序了。

哈哈哈哈哈~

=====================

未经授权,禁止转载!

欢迎关注微信公众号:奶爸de自我修养

微信号:DaddyGrowUp

不爱鸡汤,只有干货!