我想将数组转换成图像然后制作动画

I want to convert the arrays into an image an then animate it

所以我试图想出一个康威的生命游戏代码,这让我想到了这个。它可能不是最有效的,但我是一名编码初学者,我想让事情变得简单。我想做的就是让游戏动起来,而不仅仅是展示上一代游戏。另外,我想知道如何无限地 运行 游戏,因为如您所见,此代码具有预先确定的世代数。在此先感谢您的帮助,这是我的代码:

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()

当我在 Macbook 上 运行 时,我在各种动画示例(以及相关的 blocking/nonblocking 示例)方面运气不佳。

一个对我有用的简单的东西: ... x=np.random.randint(2, size=(50,50)) p = plt.imshow(x) ... x = y.copy() p.set_data(x) plt.pause(.1)