我有一个名为game
的列表。
game = [[0, 1, 1, 1, 0, ...], [1, 0, 0, 0, ...], ...]
game[x][y]
给出x
坐标x
和y
坐标y
处的值
1
表示它还活着,0
表示它已经死了。我有一个函数,可以根据Conway的《生命游戏》的规则更新数组。
但是,我无法找到一种以图形方式显示此内容的好方法。
我希望使用matplotlib之类的东西,如果我想要30fps的话,我可以每1/30秒更新一次。虽然,我不确定该怎么做。
编辑:
这是我想要实现的目标:
fps = 15
while True:
plt.imshow(game, cmap='binary')
plt.show()
game = update_game(size, game)
time.sleep(1/fps)
但是,似乎每次都保存一个新图像,所以这基本上使我的计算机崩溃了……我该如何更新它?
EDIT2: 我再试一次
def main():
size = [125, 125]
game = populate_game(size)
fps = 30
fig, ax = plt.subplots()
# plt.axis("off")
img = ax.imshow(game, interpolation="nearest", cmap="binary")
ani = animation.FuncAnimation(fig, update_game, fargs=(size, game, img,), interval=1000/fps, repeat=True)
plt.show()
其中update_game
在运行img
后返回img.set_data(new_game)
,其中new_game
是更新后的game
数组。
但是,它似乎仍然很滞后。