康威生命游戏(Conway's Game of Life)

  1. 1. 稳定状态
  2. 2. 振荡状态
  3. 3. 可移动的振荡状态
  4. 4. 高斯帕滑翔机枪(Gospers glider gun)

各位小萌新们,你们好鸭~😁,我是电协(学生电子爱好者协会,和电竞没有关系!!!)的一名大二学长,欢迎来到我的个人网站。

现在摆在你面前的是我用 STM32 微控制器实现的一个康威生命游戏(英语:Conway’s Game of Life),又称康威生命棋,是英国数学家约翰·何顿·康威在1970年发明的元胞自动机。由于元胞自动机牵涉到的知识实在是太多太多了(其实是我也不懂🙃),这里我就不一一展开了,如果你感兴趣的话呢可以自行了解一下。

现在就让我直接来给你介绍一下规则吧,这个游戏的规则很好理解:

  1. 每个细胞有两种状态:存活或死亡,每个细胞与以自身为中心的周围八格细胞产生互动(黑色为存活,白色为死亡)
  2. 当前细胞为存活状态时,当:周围的存活细胞数量等于2或3时细胞会存活,否则就会死亡(模拟生命过少或过多)
  3. 当前细胞为死亡状态时,当周围有3个存活细胞时,该细胞变成存活状态。(模拟繁殖)

这个规则可以被简称为B3/S23。当所有的细胞同时被以上规则处理后,可以得到第一代细胞图。按规则继续处理当前的细胞图,可以得到下一代的细胞图,周而复始。

这三条规则这些若干个细胞构成了一个复杂的动态世界。运用简单的3条作用规则构成的群体会涌现出很多意想不到的复杂行为。

这里我找到了一些特定的图形,请你通过触摸屏设定每个细胞的初始状态,然后点击运行按钮,来观察一下这些“生命体”会做出怎样的行为吧!

稳定状态

稳定状态

振荡状态

稳定状态

可移动的振荡状态

稳定状态

高斯帕滑翔机枪(Gospers glider gun)

因为屏幕太小了,没法画出高斯帕滑翔机枪,这里就直接放张动图。

Gopspers glieder gun

有没有觉得很神奇呢?如果你想了解更多有关的知识,无论是电子电路,微控制器(单片机),还是桌面、移动应用程序,亦或是这个网站是如何搭建起来的,欢迎你加入电协(点击加群:599390732),在这里,你可以找到一群志同道合的伙伴,一起探索电子世界的乐趣!

最后再附上代码仓库,感兴趣的小伙伴可以 clone 下来学习,如果能提 PR 就更好啦。

image-20200919005841143

本网站所有文章除特别声明外,均采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。