热线电话:13121318867

登录
2019-04-09 阅读量: 407
python实现康威的生命游戏(4)

1.初始化网格中的单元格。
2.在模拟的每个时间步,每个
在网格中的单元格(i,j),执行以下操作:
一个。基于更新单元格(i,j)的值
它的邻居,考虑到了
边界条件。
更新网格值的显示。

# main() function

def main():

# Command line args are in sys.argv[1], sys.argv[2] ..

# sys.argv[0] is the script name itself and can be ignored

# parse arguments

parser = argparse.ArgumentParser(description="Runs Conway's Game of Life simulation.")

# add arguments

parser.add_argument('--grid-size', dest='N', required=False)

parser.add_argument('--mov-file', dest='movfile', required=False)

parser.add_argument('--interval', dest='interval', required=False)

parser.add_argument('--glider', action='store_true', required=False)

parser.add_argument('--gosper', action='store_true', required=False)

args = parser.parse_args()

# set grid size

N = 100

if args.N and int(args.N) > 8:

N = int(args.N)

# set animation update interval

updateInterval = 50

if args.interval:

updateInterval = int(args.interval)

# declare grid

grid = np.array([])

# check if "glider" demo flag is specified

if args.glider:

grid = np.zeros(N*N).reshape(N, N)

addGlider(1, 1, grid)

elif args.gosper:

grid = np.zeros(N*N).reshape(N, N)

addGosperGliderGun(10, 10, grid)

else:   # populate grid with random on/off -

# more off than on

grid = randomGrid(N)

# set up animation

fig, ax = plt.subplots()

img = ax.imshow(grid, interpolation='nearest')

ani = animation.FuncAnimation(fig, update, fargs=(img, grid, N, ),

frames = 10,

interval=updateInterval,

save_count=50)

# # of frames? 

# set output file

if args.movfile:

ani.save(args.movfile, fps=30, extra_args=['-vcodec', 'libx264'])

plt.show()

# call main

if __name__ == '__main__':

main()

0.0000
1
关注作者
收藏
评论(0)

发表评论

暂无数据
推荐帖子