私はConwayのGame of Lifeコードを思いつきました。それは最も効率的なものではないかもしれませんが、私は初心者のコーダーであり、物事を単純にしたいと思っていました。私がしたいのは、ゲームをアニメーション化することだけです。ゲームの最後の世代を表示するだけでなく、また、私は、このコードがあらかじめ決められた数の世代を持っているのを見ることができるので、ゲームを無期限に実行する方法を知りたいと思います。あなたの助けを事前に感謝し、ここに私のコードです:配列を画像に変換してからアニメーション化したい
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()
無関係、しかし、あなたはすべてのネイバーを取得するためにスライスし使用することができますnumpyのあなたはすでに使用しているため、np.sum 'のような(X [I-1:I + 2 、j-1:j + 2])-x [i、j] 'である。また、同じ数の隣人を2〜3回も計算しないで、変数を代入するだけです。最後に、 'imshow'のアニメーション例を以下に示します:http://matplotlib.org/examples/animation/dynamic_image.html – roadrunner66