所以我试图想出一个康威的生命游戏代码,这引导我去看这个。它可能不是最有效的,但我是一个初学者,我想保持简单。我想要做的就是为游戏制作动画,而不仅仅是显示游戏的最后一代。此外,我想知道如何无限制地运行游戏,因为您可以看到此代码具有预定数量的代。在此先感谢您的帮助,这是我的代码:
import numpy as np
import matplotlib.pyplot as plt
x=np.random.randint(2, size=(50,50))
for b in range (0,100):
y=np.zeros((50,50), dtype=np.int)
for c in range(1,48):
for d in range(1,48):
if x[c][d]==1:
if x[c][d-1]+x[c][d+1]+x[c-1][d-1]+x[c-1][d]+x[c-1][d+1]+x[c+1][d-1]+x[c+1][d]+x[c+1][d+1]<2 or x[c][d-1]+x[c][d+1]+x[c-1][d-1]+x[c-1][d]+x[c-1][d+1]+x[c+1][d-1]+x[c+1][d]+x[c+1][d+1]>3:
y[c][d]=0
else:
y[c][d]=1
if x[c][d]==0:
if x[c][d-1]+x[c][d+1]+x[c-1][d-1]+x[c-1][d]+x[c-1][d+1]+x[c+1][d-1]+x[c+1][d]+x[c+1][d+1]==3:
y[c][d]=1
else:
y[c][d]=0
x=y.copy()
plt.imshow(x)
plt.grid(False)
plt.show()
答案 0 :(得分:0)
当在Macbook上运行时,我已经在各种动画示例(以及相关的阻塞/非阻塞示例)中获得了可怕的运气。
对我有用的简单事情:
...
x=np.random.randint(2, size=(50,50))
p = plt.imshow(x)
...
x = y.copy()
p.set_data(x)
plt.pause(.1)