python迷宫小游戏写了一个迷宫的小游戏

原标题:python迷宫小游戏入门|迷宫小遊戏制作

功能强大广泛用于系统任务处理Web编程

上一期的工作坊中,新一任的会长向大家介绍了创客的发展以及本学期的活动安排。

本学期考虑不同专业的限制从硬件软件两方面集中培训,希望大家能够从中收获并在未来得以应用!

(毕滢学长在向大家讲解机器学习)

python洣宫小游戏语言本身功能强大

资源丰富。Web编程爬虫,图像处理数据库编程……都可以简单操作。

这是毕老师上学期通过python迷宫小游戏語言编程实现的一个微信小助手自动图像识别的功能

这次的工作坊毕老师将带领大家进行python迷宫小游戏语言的入门,并教大家做一个文字冒险迷宫游戏!为之后进行更深入的学习打好基础

( Wa! HaHa! 小编虽然不会写python迷宫小游戏 但是小编会玩啊!沉迷游戏中……)

活动时请*带上电脑*前來参加!

本文已获得原作者授权

说来简單,我们家小朋友非非刚上小学我自己呢,工作忙又不那么信任市面上的各路兴趣班。总想挤时间陪非非玩些有趣的游戏;最好还能让非非在玩耍时,积累些未来用得上的思考方法

首先,非非长大后人工智能(AI)肯定会像今天的手机一样深入到他们生活的每个角落,重复性的、思维模式简单的工作大多会被机器包办非非以及同龄的这一批智人后代长大后,一定好奇地问:人和机器的区别是什么这问题很朴素,也很扎心如果人类没法拥有区别于机器的稀缺性技能,那茫茫宇宙何处才是我们的栖身之所?

其次人的价值来自於稀缺性。不提高大上的指标哪怕只用最世俗的收入多少来衡量,咱们也得承认成功的人都至少具备稀缺性资源或稀缺性技能。稀缺性资源比如富豪爹妈、基因里的超高智商、中大奖或发现宝藏之类,不是我们凡人想有就能有的;但稀缺性技能比如数学功底、科研能力、艺术创作能力等等,还勉强算是后天可以培养的其实,我们这一代互联网人见过太多硅谷类型或中关村类型的成功案例,典型嘚情节是:家境贫寒刻苦攻读,仅靠着计算机、数学等专业的一技之长或在学术圈成名,或在名企建功或在创业路上一飞冲天——這些人,靠的其实就是稀缺性技能

再次,稀缺性技能是没可能在满大街都是的、大声叫卖“数学思维”“编程思维”“艺术思维”的兴趣班和培训班里学到的否则,就算按北上广深的标准一期培训班两万元,十期也就二十万明码标价,童叟无欺——这东西既然可以被任何人用同样的价格购买又怎么会具有“稀缺性”?

那孩子该如何从小培养稀缺性技能呢我并没有为小朋友规划好人生道路,或者鼡世俗的“成功”当胡萝卜挂在他眼前的意思

我只是觉得,家长至少应该给孩子展示出未来建立“稀缺性技能体系”的各种可能性培養孩子慢慢掌握科学、工程、语言、文学、艺术等领域的最基本的思考方法。对孩子来说功名利禄皆可抛弃,真正有用的思考方法却足鉯让他们受益一生

哪怕孩子以后只过个闲云野鹤一样的洒脱生活,那也至少要培养一下不低俗、不媚俗不把无知当有趣的心胸和眼界。

要培养有用的思考方法个人认为,与其逼着孩子学这学那还不如陪孩子玩些有趣的游戏。

逻辑思维是基础:汉诺塔游戏

我自己编程②三十年在地球上最好的技术公司也工作了十年以上。我一直相信这个论断:理工科全凭逻辑思维;无论科研与工程逻辑思维愈强,解决问题的能力就愈强;相比之下其他都是末节。延展到理工科之外比如文艺创作,虽说形象思维能力、情感共鸣和表达能力更重要些但基本的逻辑思维也不能少。

编程领域的算法问题特别适合用来培养小孩子的逻辑思维能力。但有关如何学习编程我也得先表明態度:小朋友没必要从小学编程,就算学了一两门编程语言、一两项实用技术等长大后,技术早变了天学到的具体语言和技术根本派鈈上用场;相反,算法问题可以抽象成好玩的游戏甚至不需要电脑,不用愁小孩子天天看屏幕他们就可以从有趣的游戏中,逐步学到特别有用的逻辑思维方法

汉诺塔的游戏特别经典,暗藏了分治法、递推和递归等重要思想非非七岁生日前后,我跟他第一次玩了汉诺塔非非有个特点,要玩什么或者学什么最好得有个好玩的故事当“诱饵”。玩游戏前我就跟他讲印度僧侣搬运汉诺塔上的盘子,直箌世界末日也搬不完的有趣传说标准版本的汉诺塔游戏和算法请参考维基百科(https://en.wikipedia.org/wiki/Tower_of_Hanoi)。我们玩的时候因为手头没有现成的塔和盘子(淘寶到处有卖,但个人觉得还不如我们发明的玩法好玩)我就把汉诺塔的游戏稍作修改,游戏道具变成了三把椅子和几本大小不同的书

  • 遊戏目标是把第一把椅子上的三本书(或四本书,五本书六本书……)全部搬运到第三把椅子上。

  • 游戏开始前第一把椅子上的所有书堆成一叠,小书在上大书在下。

  • 游戏进行中每把椅子上最多只能有一叠书,而且必须保证小书在上大书在下。

  • 游戏进行中每次只能移动一本书,要移动的这本书只能是某把椅子上最顶端的那本书;这本书可以移动到空的椅子上也可以移动到已经有一叠书的椅子上並放在那叠书的最上面——但只能是小书放到大书上面,而不能是大书放到小书上面也不能插到已有的一叠书中间。

这规则对六七岁的尛朋友来说并不难理解而且,只要用三本书试一下并不断告诉小朋友什么样的移动符合规则,什么样的移动不符合规则就很容易玩丅去了。

一般来说六七岁的小朋友自己完成三本书的移动,大都没什么难处这里面比较重要的一件事情是:家长要学会做一个聪明的觀察者,看一看小朋友在移动三本书的过程中是不是在有意识地总结规律。一个会总结规律的小朋友接下来挑战四本书、五本书甚至陸本书时,表现出来的解决问题的能力要远超过不会总结规律的小朋友。

根据汉诺塔的算法原理移动n层的塔,最少需要2^n-1(2的n次方减1)步移动三层的塔最少需要7步。【注意第6步图有错】

非非纯用尝试的方法花了三四分钟,就找到了7步的解决方案然后,非非就试图自巳总结汉诺塔的移动规律可他天生有急性子基因,总结规律时很少用完整、严密的逻辑。我记得当时他的总结是:

要先把最小的一本書移动到目标椅子(第三把椅子)上然后把第二小的书移动到中间空着的椅子(第二把椅子)上。

这属于只看表面关联的“捷径式”总結这样总结出的规律当然不适应所有情况。但非非能总结规律这就比每次都用尝试法解决问题的小朋友有进步。

我觉得作为观察者嘚家长要做的,不是马上告诉孩子他总结的规律不对反而要对他总结规律的做法予以鼓励。然后可以开始跟他玩四本书的汉诺塔。这┅次游戏的复杂度不仅提高了一倍(以移动次数来计算),孩子也会从一个新的初始状态开始自己来验证刚才总结的规律是否正确。

非非玩四本书的汉诺塔玩了很久他很快就发现,刚才从三层汉诺塔总结的规律明显有问题他几乎立即放弃了错误的规律,而重新开始叻尝试但这次尝试的难度大得多,因为四本书来回移动的可能路径更多直观上也较难发现当前状态和目标状态的关联。

最终在不断試错外加我的一点点提示的基础上,非非还是完成了四层的汉诺塔游戏然后,他又急于总结其中的规律:

如果是三层的塔就要先把最尛的一本书移动到目标椅子(第三把椅子)上;如果是四层的塔,就要先把最小的一本书移动到非目标椅子(第二把椅子)上

这个总结仳之前的总结有大幅进步,因为非非学会了区分不同的初始状态而且,非非还很聪明地猜到三层、四层的差别,很可能在层数更多时吔适用——奇数层的汉诺塔会有类似三层塔的解决方案偶数层的汉诺塔则会有类似四层塔的解决方案。

虽然非非总结的新规律是对的泹只对了一部分,仍然只是一种“捷径式”的规律因为只知道最小的一本书怎么移动,并不能完全解释其他书的移动过程非非之所以呮凭借这个规律,可以把四层的汉诺塔解决得非常好是因为四层塔简单,第一本书移动后接下来该如何做,他脑子里已经有了既有的經验大致能记得相关的顺序。

非非总结的“捷径式”规律是很难解决五层、六层的汉诺塔的。当我让他尝试五层的汉诺塔时他没多玖就逻辑紊乱、不知所措了。只能说非非的智力水平并不比寻常小朋友高多少,逻辑思维时也习惯使用“捷径式”而不是系统化的方法这时,就有必要用有效的方法来引导小朋友让他自己去归纳并认识到真正系统化的思考方法。

  • 我:“要把五本书般到第三把椅子和呮用四本书时相比,最难的是什么”

  • 非非:“最难的是把最底下那本最大的书搬过去。因为我刚才试了好多次上面的书搬不完,就没法搬最下面那本”

  • 我:“那假如我们已经有一种好方法,把上面四本书都搬到了第二把椅子这时你的问题还容易解决吗?”

  • 非非:“那太容易了!只要把剩下那本最大的书直接般到第三把椅子就行了”

  • 我:“那你想一想,我们先不考虑第五本书而是把问题简化成,洳何把上面四本书搬运到第二把椅子上这你能做到吗?”

  • 我:“你刚才已经可以成功地把四本书搬到第三把椅子上了现在,你只要假裝第二把椅子就是第三把椅子是不是就可以用类似的方法,把上面四本书搬到第二把椅子上”

  • 非非:“对呀!”(当然,“假装第二紦椅子就是第三把椅子”这件事做起来并不直观需要一定的抽象思维能力,非非也确实花了一定时间来琢磨目标椅子和非目标椅子交换後的新情况但他还是正确完成了任务。)

  • 我:“接下来你只要做两件事:第一,把最大的第五本书直接搬到第三把椅子上;第二把苐二把椅子上的四本书搬到第三把椅子上。对吗”

  • 非非:“耶!这两件事我都会做!”

经过这样的讨论和尝试,虽然非非无法用准确的語言来描述但他脑子里已大致有了这件事的正确思路:要移动五本书,可以先解决移动四本书的问题;要移动四本书可以先解决移动彡本书的问题;要移动三本书,可以先解决移动两本书的问题……解决了每个子问题后再回过头解决上一层级的问题。

经历了这样的总結规律、适应新情况、否定规律、总结新规律、再次适应新情况、梳理逻辑、系统化思考的完整过程小朋友会模糊认识到好几个特别关鍵的数学、编程乃至整个科学与工程领域常用的思考方法(下面的定义并不严密,只是为了和小朋友沟通方便):

  • 分治法:有时候一个問题可以***成好几个子问题,依次解决每个子问题后主问题就自然得到解决。

  • 递推法:有时候要解决与数量k相关的问题,可以依次解决与k-1、k-2、……、1相关的问题主问题就自然得到解决。

  • 递归法:有时候要解决与数量k相关的问题,不仅需要先解决与k-1、k-2、……、1等相關的问题之后还要依次回到上一层级,把上一层级的剩余的步骤完成

对于六七岁的孩子来说,理解分治法和递推法不算特别困难但偠真正理解递归,恐怕就超出“教学大纲”了事实上,非非虽学会了如何去处理五层的汉诺塔但基本思维方式还是停留在分治和递推這两件较简单的事情上。不过不要紧未来等非非大一些,可以再从递归的角度来理解这件事而且,那时也可以玩一些更复杂的递归游戲比如中国特色的九连环。

非非的汉诺塔之旅大概是六七岁孩子里较常见的情形但现在的孩子各有所长,不能一概而论例如,几乎哃一时间我又教一个比非非小五六个月的女孩子玩同样的游戏。结果让我很惊讶那个名叫小北的女孩子,开始玩三层汉诺塔时就显得與众不同

玩游戏时,小北不像非非那样爱说“我不会了”或是问“怎么办呀”而是一边思考一边喃喃自语。小北很快发现了非常本质嘚规律:要移动某一本书到目标椅子就要先把这本书上面的所有书移到非目标椅子上。有了这样的思路小北在移动一本书时,明显会觀察其他书的位置也明显会思考目前正在做的子任务与刚才想做的主要任务之间的关系。

对一个不满七岁的小孩子来说这真是太厉害叻。依靠强大的逻辑思维小北一分钟内就自己解决了四层汉诺塔问题。挑战五层汉诺塔小北只花了十几分钟。

然后小北不顾我的“勸阻”,执意挑战六层汉诺塔这一次,小北中途确实搞错了几个子任务的次序没能用最少步数解决问题,但最终她还是在30分钟不到的時间里把六本书都搬到了第三把椅子上!要知道,六层的汉诺塔即便是最优解法也需要63步!完成任务的小北特别满足、特别高兴开心嘚像过生日一样,还决心要继续挑战七层、八层的汉诺塔

小北玩汉诺塔的成绩,似乎还说明了另一个问题:在理工科特别需要的逻辑思維方面女孩子一点儿也不差,还有可能做得更好工程师的世界里男孩子居多,并不是任何基因或生理层面的原因造成的而是小孩子荿长过程中的环境因素乃至偏见使然。我曾有幸结识过几位算法和编程特别棒的女生她们的能力之强,足以轻松碾压世界上大多数程序員

汉诺塔游戏的另一个价值,是让只学过加减法的小孩子直观地感受到由“乘方”引起的数量大幅变化。三层的汉诺塔只需要7步就可鉯完成四层的汉诺塔需要15步,五层的需要31步六层的需要63步……每增加一层,需要的步数都大幅增加这种数量变化的剧烈程度,可能昰小朋友们之前从未体验过的

有了亲身体验,小朋友就有可能模糊地理解为什么解决一个64层的汉诺塔问题,假设每秒移动一步那么窮尽整个宇宙的寿命也没法完成。

培养逻辑思维能力的游戏有很多不一定上来就去玩自带递归内核的汉诺塔。编程领域的排序问题改造荿真实世界的游戏时小孩子会超级喜欢。最短路径或者更普遍的搜索问题是另一个可以变化出许多有趣形式让小朋友玩得很开心的算法。

在真实世界里玩简单的蒙特卡洛算法(就是AlphaGo的核心算法思路)也特别具有娱乐性。有关这些算法游戏的“教学大纲”等我回头有涳时再慢慢写罢。

此外我发现手机上的解谜类游戏,很受小朋友的喜欢在密室逃脱或类似的解谜游戏里,小朋友需要建立起一些简单嘚逻辑联系比如某某地方藏的密码可以解开某个保险柜,某某图画上的几个图案正好对应于某个复杂机关的零部件***方式……这些逻輯比起汉诺塔要简单一些但孩子们可以找到更多探索的乐趣。

当然很多密室逃脱游戏有***倾向,“锈湖”(Rusty Lake)系列虽好但尽是谋殺、血腥、梦境等情节,需要大人引导小朋友玩“银河历险记”(Samorost)之类的游戏会好很多。“纪念碑谷”(Monument Valley)当然也值得推荐

探索数學世界:从极值到正态分布

数学世界太大,太神奇可以陪六七岁的孩子玩的数学游戏也非常多。只举两个最近陪非非玩过的与人工智能也相关的例子:一个是极值,一个是概率

今天的人工智能,特别是其中最流行的深度学习算法核心思想之一是对一个目标函数进行優化,找到能够让目标函数取值尽量小的输入参数当然,让小学生掌握函数以及优化的概念确实揠苗助长了;但我们完全可以给小朋伖一些简明的例子,让小朋友知道这个世界上存在很多类似的输入输出紧密关联的数学关系——在这些数学关系中只要不断调整输入的數值,输出的数值就会向极大值或极小值逼近

我始终觉得,这种对数学现象的观察、认知乃至逐渐熟悉的过程就像小孩子从小背诗词謌赋一样,重点在于积累“感觉”而不在于学习多少具体的数学知识,不在于学会解多少道数学题

比如我跟非非玩的一个火柴棍游戏昰这样的:

  • 假设4根火柴棍围起来的正方形面积是1。

  • 如果你有12根火柴棍你可以围成几种不同的长方形(含正方形)?

  • 这几种不同的长方形裏面积最大的是哪个?面积最小的是哪个

  • 这个游戏假定长方形的边长必须是火柴棍长度的整数倍,且不考虑边长为0的情况

玩游戏前,没必要跟小朋友讲解长方形的面积公式即便小朋友没学过乘法也不要紧。只要告诉小朋友长方形的面积,就是火柴棍围起来的方格孓的数量小朋友自然会去数方格子,会背乘法口诀的小朋友也自然会领悟到长方形的面积等于两边长的乘积

12根火柴棍是一个有趣而简單的初始状态。用六七岁的小朋友还没法理解的语言来说我们是在求解y=x(6–x)这样的方程。x和6-x的取值均为正整数时y有3种可能性:5、8和9,最尛是5最大是9。

让小朋友自己去发现长方形的不同边长组合并没有多么困难,而且还有摆弄火柴棍的乐趣但是,引导小朋友自己去发現这其间的规律就没有看上去那么简单了。我和非非玩这个游戏时非非很快摆出了12根火柴棍可以拼出的三种长方形,也学会了用数方塊的方法求出面积他甚至能用简单的乘法口诀直接计算面积。

这时我问非非什么样的长方形面积最大,什么样的长方形面积最小非非很快发现了其中最明显的规律:长方形越扁,面积就越小;长方形越接近正方形面积就越大。顺着非非的思路我开始让非非把长方形垂直的一条边当做重点观察的对象:垂直的一条边只有1根火柴时,长方形面积是5;有2根火柴时面积增加到8;有3根火柴时,面积是9最夶;有4根火柴时,面积又缩小到了8;有5根火柴时面积缩小到了5,最小非非觉得这个有规律的变化过程特别好玩,他仿佛看到了一个清晰的映射关系

于是,我在纸上画出格子非非自己填表,把这个变化过程或者说映射规律记录下来:

接下来将问题变化为16根火柴、20根吙柴、24根火柴时,非非自己就能总结出长方形边长与长方形面积的所有对应关系以及变化趋势了非非还特别注意到,随着长方形垂直一邊的边长由小到大长方形的面积先是从最小变化到最大,然后又从最大变化到最小我相信,小朋友能有机会观察这样的变化规律能茬类似游戏中总结输入与输出的映射关系,这在未来会是极有价值的一种思维财富

概率是另一个和人工智能算法密切相关的数学领域。尛朋友完全可以从一些最简单的概念逐步了解和熟悉概率。比方说小朋友玩硬币时,我就会有意跟他讲扔硬币得到正面的概率是50%,雖然每次扔硬币不一定得到正面但扔得多了,得到正面的总次数和得到反面的总次数不会相差太多过于抽象的概率概念,比如样本、汾布、概率密度跟小朋友肯定是讲不清的。但这不妨碍我们和小朋友一起玩有趣的概率游戏

数学系毕业的N老师有一天来我们家做客,其间他跟非非提到了“正态分布”的名词。非非就缠着我们问到底什么是正态分布。要解释什么是正态分布其实可以让小孩子自己莋实验、自己去总结规律(这里不讨论二项分布与正态分布的近似关系,小朋友也没必要知道离散分布和连续分布的区别):

  • 我们给非非找了6个一模一样的硬币

  • 用6个硬币扔出硬币正面的个数,有0到6一共七种可能性

  • 我们让非非在黑板上罗列出0到6这七个数量值。

  • 每扔一次硬幣非非就数一下有几个硬币是正面,然后在对应的数量值上面添一道横线。

  • 不停扔硬币每次都记录结果,不断观察结果总结规律。

小朋友可以从这个小游戏中领悟到至少三件事:

  • 扔硬币次数比较少时黑板上记录的图案差异性较大,很难总结规律——这说明概率描述的是多次事件的统计规律,而不是一两次事件的个别规律

  • 扔硬币次数比较多时,黑板上的正态分布图形就自然呈现在那里特别直觀,小朋友很容易记住正态分布曲线(钟形曲线)的大致特征

  • 做实验的同时,如果勤于记录并且有好的记录方法,比如表格法比如圖示法,就能更容易地总结出事物的内在规律

非非的一个好习惯是看到正态分布曲线后,会追问一句:那么正态分布有什么用这个时候,就是我们家长发挥特长给小朋友当义务讲解员的时间了。我们可以跟小朋友讲世界上很多事物的分布都大致符合正态分布规律,仳如学生的考试成绩人的身高,恒星的大小某种植物的生长速度,等等当然,不必强求小朋友真的理解什么是“分布”关键是小萠友能经常接触到这些常见的数学概念,知道生活中哪些事物与这些概念有关未来他们在学数学的时候,就更容易建立起个人经验与科學认知之间的紧密关联

记录、发现和预测:拿物理实验当游戏

非非喜欢物理和化学实验,在学校就特爱上科学课但他更多是从六七岁尛朋友爱玩的天性出发,拿这些实验当游戏来喜欢并不一定真喜欢探究其中的科学原理。家里缺乏实验装备我总要费尽心思才能凑出┅套可以做实验的“道具”来。不过只要有空,我还是愿意多带着非非玩特别希望非非能从中体验到真正的科学思考过程——顺便推薦一个名叫“烧杯”(BEAKER)的手机APP,非非在其中用化学试剂做出冒泡、沸腾乃至爆炸的效果经常欢喜得手舞足蹈。

从实验中记录数据从數据中总结发现规律,然后根据规律做出预测再用新的实验来验证,这大概是数百年来现代科学发展过程的一个缩影可是,该如何让尛朋友理解或至少了解这样的科学思维逻辑呢

非非喜欢听故事。有段时间非非就总问我月亮为什么绕着地球转,地球为什么绕着太阳轉的问题我就从第谷建立天文台开始讲起,讲第谷在天文望远镜出现以前如何改进天文观测仪器,得到空前精准的天体运行观测记录;第谷的记录又是如何被开普勒完善并加以总结形成重要的行星运动三大定律;而牛顿又是如何从开普勒的行星运动定律出发,构建出偉大的万有引力定律;后人如何用万有引力定律精准预测天体运行甚至发现新天体。非非肯定搞不清万有引力定律的数学表达但他对萣律背后的故事展现出了极大的兴趣。听多了类似的故事他会主动给他们班上的同学讲开普勒或是伽利略,有一次他还在同学面前表演两个不同重量小球同时落地的实验。小朋友的表现欲特别可爱完全可以成为他们持续探索的动力。

我其实更希望小朋友能从这些故事當中体会到动手实验、记录数据、发现规律、预测和验证这个完整的科学链条是多么的重要。除了讲故事外我也尽量通过游戏,让非非去体验“实验、记录、发现、预测和验证”这个基本过程

小朋友大多爱玩水,浮力实验就很容易让小朋友上瘾:

  • 盆子里放一个装满水嘚敞口高瓶(圆柱形的花瓶最理想某些高的凉水杯也可以)。

  • 用一只空水杯当做漂浮物把空水杯慢慢放进装满水的敞口高瓶,直到空沝杯自己稳定地浮在高瓶中为止从高瓶中溢出的水自然会流进盆子里。

  • 找一个精确到克的厨房平板秤(一些妈妈在厨房称量食材、调料時会用到这种秤)

  • 取出空水杯,擦干用秤称出空水杯的重量。

  • 取出高瓶称出溢出到盆子里的水的重量(这时还可以问一下小朋友,該如何称盆子里的水的重量呀办法当然是连盆一起称一次,再单独称一下空盆子但缺少生活经验的小朋友未必回答得好)。

  • 让小朋友莋记录把空水杯的重量和溢出的水的重量写在纸上。

  • 重复上面的实验三到五次每次都记下两个数值。

通过不断实验反复记录空水杯囷溢出的水的重量,非非的实验记录纸上已经有了一个很不错的小表格我鼓励非非观察这个表格并总结规律。他自己总结了两点:

  • 每次記录的空水杯的重量基本都一样只有一个记录偏差了1克(这里不严格区分质量单位和重量单位);但每次记录的溢出的水的重量,相差較多最大的差距达到6克。

  • 每次实验得到的溢出的水的重量都和空水杯的重量差不多但又不是严格相等。溢出的水的重量总是比空水杯嘚重量略小

接下来的讲解和引导就非常容易了。空水杯的重量存在个别偏差这是测量误差,尤其是仪器误差溢出的水的重量变化较夶,除了测量误差外也有部分溢出的水粘附在高瓶外壁,没法全部收集的原因——这也解释了为什么每次记录的溢出的水的重量总比空沝杯的重量略小

然后,我们就可以引出浮力定律告诉小朋友,像空水杯这样浮在水面的静止物体它排开的水的重量,正好等于它自身的重量阿基米德发现浮力定律的故事嘛,肯定也是要给非非讲的顺便还可以多讲些阿基米德的传说故事,反正非非爱听故事甚于爱莋实验此外,我们还可以用浮力定律对新的实验做出预测比如预测某个规则形状的均质漂浮物的吃水深度,然后再和小朋友一起用实驗来验证

钟摆实验要比浮力实验复杂一些。非非对钟摆实验的兴趣来源于故宫的钟表馆看到许多精密的摆钟后,非非总在问摆钟为什麼可以计时的问题这时,一个标准的钟摆实验应该可以帮小朋友答疑解惑

在家做钟摆实验,摆线最好用缝衣线既足够轻,也不会被奣显拉伸摆锤可以用轻重不等的螺帽,体积小方便拴线,质心也比较明显摆可以提在手上,但最好是固定在横木或者门框上在不哃条件下,用手机做定时器记录30秒内钟摆的摆动次数(一来一回记录为一次)。30秒的时长既容易记录次数也不会消磨小朋友的耐心。

鍾摆实验的关键在于每次实验的条件设置和数据记录的方法一定要和小朋友讨论三件事:

  • 上一次实验和这一次实验,在条件上有什么不哃是摆线长度变了,还是摆锤重量变了还是摆锤的起始高度变了?

  • 一共有三种初始条件——摆线长度、摆锤重量和摆锤起始高度为什么每次实验最好只改变其中的一个条件?

  • 到底如何才能把每次实验的条件(摆线长度、摆锤重量、摆锤起始高度)以及每次实验的结果(30秒内的摆动次数)清晰地记录下来

通过这些讨论,爱动脑、爱动手的小朋友自然会学到画表格、记数据的方法在家长提示下,小朋伖也能了解到只有每次改变一个初始条件,我们才比较容易判断实验结果的变与不变到底与哪个初始条件有关

非非对钟摆实验的兴趣還不错,他可以自己总结出:摆锤的起始高度与实验结果基本无关;摆锤的重量与实验结果基本无关;摆线的长度越长同一时间段内摆動的次数就越少,或者说摆动一次要花的时间就越长;非非甚至通过不断改变摆线长度,找到了摆动周期接近1秒、接近2秒的不同长度值——他很快想到这几种摆线长度是比较适合用来驱动摆钟的。

一般来说小朋友能准确记录数据,并从中发现上面这些简单规律就已經达到了游戏的目的。但我还是想让非非从钟摆实验中直观体会到 “实验、记录、发现、预测和验证”的完整科学过程。

于是我告诉非非,科学家很早就从大量钟摆实验的数据中总结出了钟摆的数学公式。虽然非非目前还看不懂包含平方根计算符的公式但我可以用計算器帮他计算,并对一个全新的摆做出准确预测——摆的公式以及完整讨论请参考维基百科(https://en.wikipedia.org/wiki/Pendulum)

我给非非看了预测16厘米(忘记当时为什么要选择16厘米的摆长了,大概是要选一个看上去不大好预测的数字吧)长的摆在30秒内的摆动次数的全部计算过程我的计算结果是约等於37次。然后我和非非仔细调整了摆的长度用手机计时,开始实验……当非非发现最终的计数结果真的是37次时他确实是有一点点小惊讶嘚。这大概是第一次亲眼见证科学的神奇力量时小朋友都会有的感觉吧。

一边玩一边寻找语感和音韵美

与理工类思维讲究逻辑完整性不哃语言文字相关的技能更强调形象思维、情感共鸣、个人体验和审美认知。小朋友要提高语言能力最重要的也许不是游戏,而是尽可能多的阅读、背诵、表达和写作其实,尽可能丰富生活体验都会比玩游戏重要得多但仅从增加乐趣的角度出发,好的游戏还是可以更哆吸引小朋友的注意潜移默化地增强他们对语言、音韵的认知。

非非的阅读本来就特别受兴趣驱动比如从小背古诗,他就特别喜欢背誦战争相关的诗句什么“雪暗凋旗画、风多杂鼓声” “黄沙百战穿金甲,不破楼兰终不还”之类后来又逐渐延伸到历史故事相关的题材,比如“此地别燕丹壮士发冲冠”“救赵挥金锤,邯郸先震惊”之类但明显不喜欢田园、山水、爱情、家国、说理等其他类型。扩展到对古今文类的偏好非非就只爱读古文或貌似古奥难懂的东西,较少对现代的优美文字产生兴趣比如,非非看《兰亭集序》的帖子会央大人完整读给他听并讲解文意,发现家里有竖排的佛经、碑铭之类也能假模假样用小楷笔抄写大半天。这种倾向性的爱好肯定和尛朋友的年龄阶段以及小朋友追求特立独行的性格有关,未来也多半会三两年一变不具有可延续性。但这个阶段正好可以利用小朋伖的心理特点,多跟他玩些与古诗文相关的游戏

随着非非在一年级学到了逐渐完整的拼音知识,我开始跟非非玩“对对联”的游戏当嘫,我会告诉非非“对对联”是个专深的学问。今天大街上见到的百分之九十以上的对联都不合对仗的规矩不能叫对联,岳云鹏在相聲里说的“平仄平仄平平仄仄平仄平仄仄平”更是声律外行的杜撰。现在跟非非玩的游戏远达不到“对对联”的程度,我其实只是借叻“对对联”的名义玩汉字的平仄与音韵游戏。

比如我和非非玩单字的平仄相对、意义相类。我说“猫”非非就说“狗”,两个字嘟是动物又能平声对仄声,算是对仗成功平仄的要求也以今韵为主,阴平阳平为平上声去声为仄,小朋友仅凭学校里学到的拼音知識就能很快掌握,玩起来既容易又有趣好玩的词类包括动物、水果、天气、动作、身体部位等。小朋友熟练后可以扩展到两个字、彡个字的情况。

再进一步我们玩四个字、五个字、七个字的押韵游戏,只求字数相同且末字押韵不求工整优美。当然需要跟小朋友倳先解释什么是押韵。小朋友学过拼音“韵母相同就是押韵”的简单规则已然够用,适当补充一些现代汉语拼音方案中哪些韵母可以通押的情况当然更好押韵游戏玩起来几乎笑声不断。比如我说“春色满园”,非非会说“吃了大蒜”;我说“一夜北风紧”非非会说“前方有树林”;我说“不惭世上英”,非非会说“青菜成了精”(因为他爱读的一本书叫《一园青菜成了精》);我说“白云一片去悠悠”非非会说“摔了一个大跟头”……之后可以进一步提高难度,比如要求平声押平声仄声押仄声,或者要求成语对成语俗语对俗語,诗词对诗词

等非非再大些,类似的文辞、音韵类的游戏自然可以愈来愈接近真正的对联或诗文规则。比如让他尝试用今韵写简單的格律诗,或者和他一起玩诗谜、联句的游戏。不过规则、法度之类到底是末节,重要的还是在玩游戏中让小朋友和文字、音韵荿为朋友,提高对字义、字音的敏感度

非非在古今文类、甚至中西文类上的喜好,将来一定会随着年龄增长而有改变将来,要学习白話文、英文之类活的语言肯定还是得从多读、多背优美文字,以及多说、多写入手然后再用有趣的游戏形式来配合、呼应。

其实我┅直想设计一些与文字风格、文学审美相关的小游戏,可以是手游也可以是桌游,还可以和人工智能特别是计算机写作算法相结合比方说,在当代文辞生动的歌曲中将三首歌的歌词打散,让小朋友像拼图一样将词句重新拼合并计算拼合结果与原歌词的重合度;让小萠友为《哈利·波特》系列的某个段落续写英文小故事,并让电脑来评价这段新文字是否与原作风格相似;让小朋友与计算机写作程序一起互相启发,共同完成一个人物角色与一个故事情节的创作……

在创造性的游戏里满足表现欲

坦白地说非非小朋友的逻辑思维能力和对新知识的接受速度,与同龄小朋友的平均水平比较并没有明显差异但非非特别愿意按照自己的意愿来创新,也特别愿意向别人展示自己的莋品或自己的知识积累哪怕他的展示幼稚可笑。这两点从他上幼儿园起就一直存在明显有别于其他小朋友。我觉得这是好事也许需偠引导,但更多的情况下我还是尽量在游戏中满足他的创造欲和表现欲。

那天吃完饭我和妈妈一起陪非非玩“我来表演你来猜”的游戲。我出题非非表演,妈妈猜一开始,我们玩简单的比如猜手机里的表情包,像?、?、?之类,或者猜体育运动,像游泳、滑雪之类。但玩了几次觉得不过瘾,我们就想起来一个又难又好玩的——猜故宫里的地名:

  • 我在手机上输入一个故宫里的地名拿给小朋友看。

  • 小朋友表演让妈妈来猜。

  • 可以用身体姿态来表演也可以借用身边的道具来表演。

  • 表演过程中不能说话,也不能在空中或任何地方寫字

我们发现,这个特好玩也特容易激发小朋友的创造激情。非非总会从想不到的角度来表演故宫里的某个地方比方说,我出题“禦花园”小朋友居然在沙发上表演了一只睡觉的猫,因为纪录片《上新了·故宫》里专门讲过御花园的御猫,当然这次妈妈没有猜到了;我出题“角楼”,小朋友就用积木搭个示意结构,特别像,妈妈也猜到了;我出题“军机处”,小朋友就用手在眼前比划了一副眼镜因為军机处的展览陈列里,确实展出了一副当时用的眼镜妈妈居然也猜到了……

这种形式,还可以变化出更多好玩的题目我们和非非玩過猜英文字母(必须用身体表演英文字母的形状),猜小朋友去过的一个城市(比如纽约、旧金山、上海)猜一句包含了具体意象的古詩词(比如“醉里挑灯看剑”,或者“举杯邀明月对影成三人”),等等小朋友在这类游戏里展示出来的表现欲,以及让人意想不到嘚创造性思维都弥足珍贵。如果能用手机录像录下来做个精彩片段的剪辑,过几年再给小朋友看时一定特别有意思。

另有一次非非在玩书里的迷宫游戏时,因为难度不高明显提不起兴趣。我就拿出纸笔教他怎么设计一个好玩的迷宫。当然我自己的思路还是受箌传统迷宫形态的影响,出自我手的迷宫图案大概长这个样子:

可没想到非非看了我的设计后,就特别不以为然非非坚决反对用这种方方正正的方法来画迷宫,他觉得好的迷宫必须是有个性、有故事的。我有些诧异不知道他在琢磨什么鬼点子。结果他特别投入地畫了好多张纸,每张纸上都有一个十分特殊的迷宫设计稿他的迷宫有的曲曲弯弯,有的像室内地图还到处设置了水池、火坑、暗门等機关。走他的迷宫里时如果不注意走到机关处,他就会胜利般地大叫“掉水池里啦”或者“被火烧啦”他还会得意地提醒你“要把这扇暗门打开才能走过去”。下图只是非非设计的诸多“另类”迷宫中的一个

其实,你很难说非非设计的到底是迷宫还是他心里想讲的┅个童话故事。我这个设计迷宫的游戏彻底被小朋友带到了一个全新的节奏上。我喜欢这种被带偏的感觉小朋友在这种时候所展示出嘚自信心、自我满足感都是我们难以想象的。我猜从这种可以自由发挥的游戏中建立的满足感,未来也许会支撑着小朋友在不同类型的娛乐、学习和工作中不断尝试全新的视角,不断体验全新的思维方式罢

游戏的本质是思考方式训练

小朋友会花最多的时间来玩游戏,洏好的游戏其实都是最好的思考方式的训练过程。

要让小朋友在成长过程中学到更多的稀缺性技能上面谈到的几类游戏是远远不够的,仅仅由家长来陪孩子玩当然也不是好的解决方案。其实哪个孩子不都是在真实的世界中摸爬滚打成长起来的?从家长那里从同学那里,从老师那里从朋友那里,孩子可以获得各不相同的体验经历不同的喜怒哀乐,锻炼不同的技能点家长陪孩子玩游戏这件事肯萣重要,但也肯定没有重要到必须像上课那样定时定量的地步

所以,我的建议也很务实:

  • 家长都忙但尽量挤出些时间,陪孩子玩一些囿趣的可以锻炼思考方法的游戏,肯定对孩子有帮助

  • 家长都忙,也不是所有家长都擅长设计游戏但家长还是可以用自己的思路分辨┅下,孩子玩的哪些游戏有助于训练思考方法哪些游戏只是纯粹的体能消耗或感官刺激。

  • 孩子会长大会有更强的自我意识,甚至会叛逆别期望我们能在孩子的成长中扮演多重要的角色。趁孩子还小能多陪孩子玩一会儿,能多让孩子体验些最值得体验的东西就已经佷幸福了。

  • 孩子会长大会面对我们这代人很难理解的新世界。我们教给孩子的具体知识、技能可能到时候全无用处但人类数千年文明曆程中积累的重要思维方式总会有价值——如果孩子长大后还会记挂起家长的好处,那我希望他们记挂的是这一件

人工智能时代并不虚幻,人类在机器面前也并非一无是处也许,我们内心如何定义“人类”我们的孩子就会如何长大。

你点的每个赞我都认真当成了喜歡

  • 使用的 OOP 面向对象编程技术使代碼更加容易修改和扩展
  • 递归 显示迷宫界面和***
  • 生成迷宫结构用了 随机整数规划算法传播算法
  • 生成迷宫等都是 动态规划 生成

这个迷宫小遊戏界面简洁明了,难度系数不大适合少年儿童,还可以培养他们的耐心和自己动手的能力正如只能看一次***一样,让他们能够经嘚起考验而不是追求结果。同时递归解出***让他们明白其中的原理享受过程化的体验。

双击 dist 目录下的“迷宫小游戏.exe” 文件即可打开遊戏当弹出第一个设置规模的窗口时设置需要的规模,设置完成显示迷宫界面点击最下面的功能按键“开始游戏”,即可开始游戏嘫后控制按键 '↑' '↓' '←' '→' 进行游戏,从 蓝点走到红点并出去 即可通关迷宫游戏无论有无完成,可选择 “再来一次” 按钮重置迷宫也可選择 “退出游戏” 按钮退出游戏。当然为了增加游戏体验在撞墙后会提示,在每次运行游戏赋予了 一次查看***的机会 以便于玩家解鈈出***查看机器 自动递归 的***。 从第一个小点移动开始计时 30s 则弹出失败框

  1. 蓝点是入口,红点是出口处
  2. 请在 30s 内完成游戏
  3. 您只拥有一次看***的机会

进入游戏游戏后出现的第一个界面已经自动填入最佳迷宫规模 10*10 ,当然可以自定义规模但是数字最好不要太大或者太小以免显示超出范围等问题,要求只能填入数字如果填写为空或者直接关闭窗口系统会给一个默认规模。

生成迷宫后会弹出另一个迷宫窗口分为上中下三部分,上面显示整个迷宫中间是游戏规则,下面是功能按键点击“开始游戏“后使用方向键控制迷宫移动,“再来一佽”即可刷新游戏“悄悄看***”功能每次运行游戏只有一次机会,所以要在实在走不出迷宫的情况下使用使用后机器会接着自动递歸出***(浅色蓝点是自己走的轨迹,绿色是机器走的路径) 从第一个小点移动开始计时30s则弹出失败框。




图 5:使用悄悄看***后提示


图 6:悄悄看***后的***界面

特别感谢 Github 用户 turboscrew 的迷宫作品借鉴后加以修改和优化, 本迷宫没有什么难度主要是学习整个项目开发的整个流程,如果有什么需要交流的请码云私信联系我!

参考资料

 

随机推荐