使用python的matplotlib库实现生命游戏,要求代码不超过30行
时间: 2023-06-24 12:05:44 浏览: 64
《生命游戏》的matlab实现
5星 · 资源好评率100%
以下是一个简单的生命游戏实现,使用了Python的matplotlib库和numpy库,代码不超过30行:
```python
import numpy as np
import matplotlib.pyplot as plt
# 初始化棋盘
N = 50
board = np.zeros((N, N))
board[25, 25:28] = 1
board[26, 27] = 1
board[24, 26] = 1
# 绘制函数
def update_board(board):
# 复制棋盘
new_board = board.copy()
for i in range(N):
for j in range(N):
# 计算周围细胞的数量
count = int((board[i, (j-1)%N] + board[i, (j+1)%N] +
board[(i-1)%N, j] + board[(i+1)%N, j] +
board[(i-1)%N, (j-1)%N] + board[(i-1)%N, (j+1)%N] +
board[(i+1)%N, (j-1)%N] + board[(i+1)%N, (j+1)%N]))
# 根据规则更新细胞状态
if board[i, j] == 1:
if count < 2 or count > 3:
new_board[i, j] = 0
else:
if count == 3:
new_board[i, j] = 1
return new_board
# 绘制动画
fig, ax = plt.subplots()
mat = ax.matshow(board)
plt.axis('off')
for i in range(100):
mat.set_data(board)
board = update_board(board)
plt.pause(0.1)
plt.show()
```
在代码中,我们首先初始化了一个50x50的棋盘,并设置了一些初始状态。然后我们定义了一个`update_board`函数,用于更新棋盘状态。最后,我们通过循环更新棋盘状态并绘制动画。
阅读全文