康威生命游戏

生命游戏事实上并不是通常意义上的”游戏”, 它没有游戏玩家各方之间的竞争, 也谈不上输赢,可以把它归类为“仿真游戏”。事实上,也是因为它模拟和显示的图象,看起来颇似生命的出生和繁衍过程而得名为“生命”。游戏在一个类似于围棋棋盘一样的,可以无限延伸的二维方格网中进行。例如,设想每个方格中都可放置一个生命细胞,生命细胞只有两种状态:“生”或“死”。图中,用黑色的方格表示该细胞为“生”, 空格表示该细胞为“死” 。游戏开始时, 每个细胞可以随机地(或给定地)被设定为“生”或“死”之一的某个状态, 然后,再根据某种规则(生存定律)计算下一代每个细胞的状态:

我们可以规定如下的‘生存定律’:

  1. 每个细胞的状态由该细胞及周围八个细胞上一次的状态所决定;
  2. 如果一个细胞周围有3个细胞为生,则该细胞为生,即该细胞若原先为死,则转为生,若原先为生,则保持不变;
  3. 如果一个细胞周围有2个细胞为生,则该细胞的生死状态保持不变;
  4. 在其它情况下,该细胞为死,即该细胞若原先为生,则转为死,若原先为死,则保持不变

使用python 和 TDD 方式实现康威生命游戏示例。