图片来自wiki
生命游戏(Game of Life)是英国数学家约翰·何顿·康威在1970年发明的细胞自动机,它也是一款“零玩家”游戏,即游戏的演化完全由初始状态决定,不需要后续信息输入。
生命游戏在形式上一般是由方格组成的二维矩形,每个方格中有一个细胞,而细胞在下一刻的状态由周围八个方格中细胞的状态来决定。周围活着的细胞太多或太少,方格中的细胞都会因为资源缺乏或太寂寞而死掉,就像现实中的生命一样。玩家可以给个初始值后,静静地看着矩形中的生命诞生或消亡,期间还会出现一些有趣的几何图案,是个打发时间的不二选择。
图片来自wiki
生命游戏可以在电脑上用多种语言实现了,这里就有一个Python的例子做个12 X 12的方形零件柜,装电阻电容一类的小器件;然后在每个小盒中放入LED灯,把二维矩形具现化,用于演示生命游戏,这样还能让它变身一件艺术器。
作品思路不复杂,那最终效果如何呢?
最开始见到这个项目的时候,想到了另一个视频。内容是国外黑客入侵了一座大楼的电力系统,然后开关各房间的灯来玩坦克大战。视频如下:
那是不是可以用零件柜玩俄罗斯方块这样的游戏(坦克大战的话,12 X 12估计不够),他说这肯定要实现的,最近还在抽时间继续完成这个项目。
关于为什么会想到做生命游戏,Atommann讲得也很有趣:
大概在 2000 年左右,我上中专的时候在书店买到两本书,书名是 《数学游戏》(上下),是《科学美国人》的《数学游戏》专栏上一些文章的集结本,我几年前写过一个书评,见“能带给人思考和娱乐的数学书”。
书里有很多数学娱乐和编程问题,当时学校也教编程,主要是BASIC语言,于是我就在上机的时候尝试书里的例子,发现这些程序非常有趣。为了节省上机的时间和费用,我在去学校机房上机前,一般先到公园里把程序写在纸上,到了上机时间再把程序录入电脑进行调试。
其中我最感兴趣的程序就是生命游戏,细胞自动机程序和一些分形程序。2001年毕业工作后我都还在玩这些程序。
程序生成的图形之一
现在还很怀念以前那些在电脑上改参数生成不同的图形的日子 :)
程序生成的虫子图
《数学游戏》中文版中,每篇文章都没有写出作者的名字。这不方便让人搜索文章来源。直到后来,我才明白,有些文章是数学娱乐大师 Martin Gardner 写的;有些文章是奇书《哥德尔、埃舍尔、巴赫:集异璧之大成》的作者 Douglas Hofstadter 写的;还有一些文章是加拿大数学家 Alexander Dewdney 写的。后来我还托人从美国买了 Dewdney 的三本书。
我中专专业是机械制造,后来通过自学进入了电子行业。我也非常喜欢 DIY和相应的文化,很多东西都想自己亲自动手做一遍。在电子制作过程中,发现浪费很多时间在找零件上。而且电子零件的种类十分繁多,比如 5% 精度的电阻就有 168 种之多。如果在做一个东西的时候,发现手上少了一个零件,比如电阻,然后到处翻箱倒柜去找,这是让人无法忍受的。因此,在2012年就萌生了做零件柜的想法。我们当时讨论了很多有趣的方案,其中一个就是把 LED 灯条加到现有的零件柜上,用语音识别,定位所需要的零件。
应该是在今年,我想到这个项目还没有完成,突然想到可以在零件柜的每个格子里安装一个LED,这样就可以把零件柜做成一个艺术装置,把康威的生命游戏也集成进去。想法就这样产生了,只是把不同的东西组合在一起,就是一个新的作品。
看到这段经历,我只想说:3年前的想法现在才做,这坑填得够慢呀!