先尝试以下代码,如果成功就可以继续吧

import numpy as np #数组
import matplotlib.pyplot as plt #生成动画
import matplotlib.animation as animation #更新模拟x = np.array([[0,0,255],[255,255,0],[0,255,0]])#三维数组
plt.imshow(x, interpolation='nearest')#nearest输出尖锐边缘
plt.show()#将矩形输出为图像

最后代码:源码:https://github.com/electronut/pp

"""
conway.py
A simple Python/matplotlib implementation of Conway's Game of Life.
Author: Mahesh Venkitachalam
"""import sys, argparse
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation as animationON = 255
OFF = 0
vals = [ON, OFF]def randomGrid(N):"""returns a grid of NxN random values"""return np.random.choice(vals, N*N, p=[0.2, 0.8]).reshape(N, N)def addGlider(i, j, grid):"""adds a glider with top left cell at (i, j)"""glider = np.array([[0,    0, 255], [255,  0, 255], [0,  255, 255]])grid[i:i+3, j:j+3] = gliderdef addGosperGliderGun(i, j, grid):"""adds a Gosper Glider Gun with top left cell at (i, j)"""gun = np.zeros(11*38).reshape(11, 38)gun[5][1] = gun[5][2] = 255gun[6][1] = gun[6][2] = 255gun[3][13] = gun[3][14] = 255gun[4][12] = gun[4][16] = 255gun[5][11] = gun[5][17] = 255gun[6][11] = gun[6][15] = gun[6][17] = gun[6][18] = 255gun[7][11] = gun[7][17] = 255gun[8][12] = gun[8][16] = 255gun[9][13] = gun[9][14] = 255gun[1][25] = 255gun[2][23] = gun[2][25] = 255gun[3][21] = gun[3][22] = 255gun[4][21] = gun[4][22] = 255gun[5][21] = gun[5][22] = 255gun[6][23] = gun[6][25] = 255gun[7][25] = 255gun[3][35] = gun[3][36] = 255gun[4][35] = gun[4][36] = 255grid[i:i+11, j:j+38] = gundef update(frameNum, img, grid, N):# copy grid since we require 8 neighbors for calculation# and we go line by line newGrid = grid.copy()for i in range(N):for j in range(N):# compute 8-neghbor sum# using toroidal boundary conditions - x and y wrap around # so that the simulaton takes place on a toroidal surface.total = int((grid[i, (j-1)%N] + grid[i, (j+1)%N] + grid[(i-1)%N, j] + grid[(i+1)%N, j] + grid[(i-1)%N, (j-1)%N] + grid[(i-1)%N, (j+1)%N] + grid[(i+1)%N, (j-1)%N] + grid[(i+1)%N, (j+1)%N])/255)# apply Conway's rulesif grid[i, j]  == ON:if (total < 2) or (total > 3):newGrid[i, j] = OFFelse:if total == 3:newGrid[i, j] = ON# update dataimg.set_data(newGrid)grid[:] = newGrid[:]return img,#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 argumentsparser = argparse.ArgumentParser(description="Runs Conway's Game of Life simulation.")# add argumentsparser.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 sizeN = 100if args.N and int(args.N) > 8:N = int(args.N)# set animation update intervalupdateInterval = 50if args.interval:updateInterval = int(args.interval)# declare gridgrid = np.array([])# check if "glider" demo flag is specifiedif 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 ongrid = randomGrid(N)# set up animationfig, 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 fileif args.movfile:ani.save(args.movfile, fps=30, extra_args=['-vcodec', 'libx264'])plt.show()#call main
if __name__ == '__main__':main()

【Python】Conway生命游戏学习相关推荐

  1. 康威生命游戏java_Java Python 康威生命游戏 - 命令行版

    Java & Python 康威生命游戏 - 命令行版(2020年7月23日) 制作背景 高二的时候看霍金的<大设计>最后几页的时候看到里面提到了康威生命游戏,介绍了它的规则,感觉 ...

  2. Python - 康威生命游戏Conway's game of life

    使用python实现康威生命游戏Conway's game of life 参考<python极客项目编程> 游戏规则: 任何四周邻居存活数少于两个的存活网格将死亡,因为人口稀少. 任何四 ...

  3. Conway生命游戏

    生命游戏建立在9个方格的网格中,每个细胞有8个相邻细胞. 游戏有三个规则: 1. 如果一个细胞周围有3个细胞为生(一个细胞周围共有8个细胞),则该细胞为生(即该细胞若原先为死,则转为生,若原先为生,则 ...

  4. Python 实现生命游戏

    这次我们使用 Python 来实现生命游戏,这是一种简单的元胞自动机.基于一定规则,程序可以自动从当前状态推演到下一状态.制作的成品如下: 先来说说生命游戏的规则: 在生命游戏中,每个单元格有两种状态 ...

  5. Python实现生命游戏

    作者 | 借我一生执拗 来源 | Python高效编程 这次我们使用 Python 来实现生命游戏,这是一种简单的元胞自动机.基于一定规则,程序可以自动从当前状态推演到下一状态.制作的成品如下: 先来 ...

  6. Python实现生命游戏(Game of Life)

    生命游戏的算法就不多解释了,百度一下介绍随处可见. 因为网上大多数版本都是基于pygame,matlab等外部库实现的,二维数组大多是用numpy,使用起来学习成本比较高,所以闲暇之余写一个不用外部依 ...

  7. linux生命游戏实现,模拟生命——Conway生命游戏python实现(详细注释笔记)

    规则: 每个细胞有两种状态-存活ON或死亡OFF,每个细胞与以自身为中心的周围八格细胞产生互动.(请想象九宫格) 1)人口过少:当周围低于2个(不包含2个)存活细胞时, 本单元活细胞死亡. 2)稳定: ...

  8. python游戏后端_Python实现生命游戏

    1. 生命游戏是什么 生命游戏是英国数学家约翰·何顿·康威在1970年发明的细胞自动机.它包括一个二维矩形世界,这个世界中的每个方格居住着一个活着的或死了的细胞.一个细胞在下一个时刻生死取决于相邻八个 ...

  9. 生命游戏代码_生命游戏 the Game of Life

    引言 群居性昆虫是一个生命,鱼群.鸟群是一个生命,社会.城市是一个有机体,人类的语言是活的,人类的集体行为也是活的.这些复杂系统是如何设计出来的?世界上最著名的游戏之一,Game of Life生命游 ...

最新文章

  1. llist对象两个属性相乘在相加_Java8使用stream实现list中对象属性的合并(去重并求和)...
  2. python快速编程答案-100+Python编程题带你快速上手(附答案)
  3. 关于gradle加快构建速度采用阿里云中央仓库的配置
  4. 洛谷 P2519 [HAOI2011]problem a
  5. 关于Web报表FineReport打印的开发应用案例
  6. SpringCloud之路由网关zuul(五)
  7. 拥抱开源!除了微软红帽,这些国际大厂你认识几个?
  8. UOJ#191. 【集训队互测2016】Unknown
  9. 【OpenCV】imread读取数据为空
  10. 东莞市商业学校计算机平面设计在哪个校区,东莞市商业学校
  11. 我的世界java什么村民卖地图_《我的世界》推出虚拟货币、商店 玩家可在店中卖地图...
  12. CCNA2.0笔记_ACL
  13. c++随机打乱数组_第四天 Java 数组与排序
  14. 计算机网络中为什么引入IP地址?
  15. 安卓频谱仪audiotool中文_频谱分析仪 TEK2712
  16. 海盗分金问题 冲突分析—非合作博弈
  17. GD32F303修改外部25M晶振
  18. 【示波器专题】示波器探头的原理和分类
  19. NBA球队实力聚类分析
  20. Linux里怎么打开pt文件,在 Linux 上安装 transmission 进行远程 PT 下载

热门文章

  1. 基金操作术语与收益术语
  2. 数据中心综合布线系统
  3. UGUI 打字机效果
  4. DoTween打字机效果
  5. 格式工厂转换视频怎样设置才能使视频大小缩小
  6. 撑起个人信息的“保护伞”:数据安全合规检测与防护
  7. geoip mysql_GeoIP2 数据库更新地址
  8. 有哪些照片变漫画软件?这篇文章告诉你
  9. zemax---Corss Section(2D视图)
  10. DELMIA软件:机器人仿真运行延时功能介绍与使用方法