用Python实现Conway生命游戏
时间: 2024-12-24 18:32:04 浏览: 13
Conway的生命游戏是一种简单的离散系统,基于细胞自动机的概念,由John Horton Conway在1970年提出。它通过简单的规则模拟了生物体的生命周期。在Python中实现这个游戏,通常会创建一个二维数组表示棋盘,并根据以下四个规则更新每个细胞的状态:
1. 如果一个活细胞周围有3个活邻居,则该细胞在下一轮存活(不死也不生长)。
2. 如果一个活细胞周围少于2个活邻居,或者超过3个活邻居,则该细胞死亡(因为资源不足或竞争激烈)。
3. 死细胞如果恰好有两个活邻居则复活。
4. 其他情况保持不变。
以下是基本的步骤:
```python
import numpy as np
# 初始化一个大小为N*N的二维数组,其中0代表死细胞,1代表活细胞
def initialize_grid(N):
return np.random.randint(2, size=(N, N))
# 更新函数,根据邻域规则计算新的状态
def update(grid):
new_grid = np.zeros_like(grid)
for i in range(1, grid.shape[0] - 1):
for j in range(1, grid.shape[1] - 1):
neighbors_count = (grid[i-1, j-1] + grid[i-1, j] + grid[i-1, j+1]
+ grid[i, j-1] + grid[i, j+1]
+ grid[i+1, j-1] + grid[i+1, j] + grid[i+1, j+1])
if grid[i, j]:
# 活细胞生存条件
if neighbors_count == 2 or neighbors_count == 3:
new_grid[i, j] = 1
else:
# 死细胞复活条件
if neighbors_count == 3:
new_grid[i, j] = 1
return new_grid
# 游戏主循环,运行一定步数或直到所有细胞都死亡
def play_life_game(grid, generations=100):
for _ in range(generations):
grid = update(grid)
print(grid, "\n" * 5) # 打印当前状态并换行,美观显示
# 调用函数开始游戏
play_life_game(initialize_grid(20))
```
阅读全文