Python实现元胞自动机(生命游戏)
Python 3.7.1
康威生命游戏(英语:Conway’s Game of Life),又称康威生命棋,是英国数学家约翰·何顿·康威在1970年发明的细胞自动机。
它最初于1970年10月在《科学美国人》杂志上马丁·葛登能的“数学游戏”专栏出现。
概述
生命游戏是一个零玩家游戏。它包括一个二维矩形世界,这个世界中的每个方格居住着一个活着的或死了的细胞。一个细胞在下一个时刻生死取决于相邻八个方格中活着的或死了的细胞的数量。如果相邻方格活着的细胞数量过多,这个细胞会因为资源匮乏而在下一个时刻死去;相反,如果周围活细胞过少,这个细胞会因太孤单而死去。实际中,玩家可以设定周围活细胞的数目怎样时才适宜该细胞的生存。如果这个数目设定过高,世界中的大部分细胞会因为找不到太多的活的邻居而死去,直到整个世界都没有生命;如果这个数目设定过低,世界中又会被生命充满而没有什么变化。
例:
(图片来自维基百科条目:生命游戏)
Python代码实现
- 引入所需库
import numpy as np
import random
import copy
import matplotlib.pyplot as plt
- 设定元胞生长棋盘的大小
length = 100
width = 200
- 根据棋盘的长宽创建矩阵
cell = np.zeros((length,width),int)
cell_temp = copy.deepcopy(cell)
- 初始化矩阵为一个随机的0-1矩阵,1代表细胞生存,0代表细胞死亡
for i in range(0