当前位置: 首页 > news >正文

十大免费ppt网站在线wordpress 点赞 用户

十大免费ppt网站在线,wordpress 点赞 用户,渠道游戏官网,seo招聘信息康威生命游戏 康威生命游戏(Conway’s Game of Life)是康威发明的细胞自动机。 生命游戏有几个简单的规则&#xff1a; 细胞有两种状态&#xff0c;存活或死亡&#xff0c;每个细胞以自身为中心与周围的八格细胞互动。 对于存活的细胞&#xff1a; 当周围的细胞过少(<2)或…

康威生命游戏

康威生命游戏(Conway’s Game of Life)是康威发明的细胞自动机。
生命游戏有几个简单的规则:
细胞有两种状态,存活或死亡,每个细胞以自身为中心与周围的八格细胞互动。
对于存活的细胞

  1. 当周围的细胞过少(<2)或过多(>3)时,细胞死亡。
  2. 周围细胞数量适中(2或3)时,细胞保持存活。

对于死亡的细胞(空白区域):

  1. 周围有3个细胞时,该区域生成细胞。(模拟繁殖)

参考:中文维基百科-康威生命游戏

康威生命游戏通过上述几条简单的规则,加上不同的初始状态,就可以演化出各种复杂的模式:
生命游戏中的一种情形。图源维基百科

Python实现

由于生命游戏的规则非常简单,我们可以很容易的用Python实现。
可以用二维数组表示细胞状态,并根据生命游戏的规则计算下一次的细胞状态进行更新。
(当规模变大时,更新细胞会变得困难。可以考虑并行)

下面是一个简单的实现,使用pygame显示动画,借助numpy操作数组。
效果如下:
python实现

代码参考:https://www.youtube.com/watch?v=cRWg2SWuXtM

完整代码:

import pygame
import numpy as np
import time# 定义颜色和细胞大小
COLOR_BG = (10, 10, 10) # 背景,黑色
COLOR_GRID = (40, 40, 40) # 网格,黑灰色
COLOR_DIE_NEXT = (170, 170, 170) # 下一代死亡细胞,灰色
COLOR_ALIVE_NEXT = (255, 255, 255) # 下一代存活细胞,白色
SIZE = 10# 更新细胞状态
def update(screen, cells, size, with_progress=False):'''更新细胞状态screen: pygame.Surface 对象cells: 细胞状态矩阵size: 细胞大小with_progress: 是否显示下一代细胞状态。有时候我们只想(通过鼠标点击)修改当前细胞状态,而不想立即显示下一代细胞状态'''updated_cells = np.zeros_like(cells)# 遍历每一个细胞for row, col in np.ndindex(cells.shape):# 统计周围细胞的存活数量alive = np.sum(cells[row-1:row+2, col-1:col+2]) - cells[row, col]# 设置格子颜色,如果当前细胞处于死亡状态,颜色为背景色;否则为存活细胞颜色color = COLOR_BG if not cells[row, col] else COLOR_ALIVE_NEXT# 如果当前细胞处于存活状态if cells[row, col]:if alive < 2 or alive > 3:if with_progress:color = COLOR_DIE_NEXTelif 2 <= alive <= 3:updated_cells[row, col] = 1if with_progress:color = COLOR_ALIVE_NEXT# 如果当前细胞处于死亡状态else:if alive == 3:updated_cells[row, col] = 1if with_progress:color = COLOR_ALIVE_NEXT# 在屏幕的(row, col)位置绘制细胞。size-1是为了留出边界pygame.draw.rect(screen, color, (col*size, row*size, size-1, size-1))return updated_cellsdef main():pygame.init()screen = pygame.display.set_mode((800, 600))cells = np.zeros((60, 80))screen.fill(COLOR_GRID)update(screen, cells, SIZE)pygame.display.update()ruuning = Falsewhile True:for event in pygame.event.get():if event.type == pygame.QUIT:pygame.quit()returnif event.type == pygame.KEYDOWN:# 空格键控制游戏暂停/继续if event.key == pygame.K_SPACE: ruuning = not ruuningupdate(screen, cells, SIZE)pygame.display.update()# 鼠标左键点击,添加活细胞if pygame.mouse.get_pressed()[0]:x, y = pygame.mouse.get_pos()cells[y//SIZE, x//SIZE] = 1update(screen, cells, SIZE)pygame.display.update()screen.fill(COLOR_GRID)if ruuning:cells = update(screen, cells, SIZE, with_progress=True)pygame.display.update() time.sleep(0.1)if __name__ == '__main__':main()
http://www.yayakq.cn/news/657113/

相关文章:

  • 罗湖做网站58深圳好的网站建设公司哪家好
  • 昔阳做网站公司基因网站开发
  • 淄博网站备案酒店网站建设描述
  • c语言做项目网站广告公司排名
  • 一般做公司网站需要哪几点从那些方面建设网站
  • 秒收网站手机代码编辑器
  • 新乡网站建设哪家正规crm客户管理系统页面
  • 个人博客设计安卓手机优化大师官方下载
  • 铜陵建设行业培训学校网站学做婴儿衣服网站好
  • 拿自己爱人做网站有哪些好的做兼职的网站
  • 建设旅游网站的工作方案做服装网站的意义是什么
  • 网站建设考题中国建筑网官网查询证书
  • 网站线上推广方式网站建设开发制作
  • 网站建设与用户需求分析(初稿电子商务网站建设林锋课本答案
  • 网页设计与网站建设心得体会建筑公司有哪些部门和职位
  • 商城网站建设是什么意思合肥制作手机网站
  • 北京做机床的公司网站外贸数据分析网站
  • 手机分销网站app个人主页设计
  • 个人做网站开发国内有实力的软件开发公司
  • win2003怎么做网站新东方教育培训机构
  • 网站设计与制作说明书页面跳转请记住新域名
  • 做宣传图片的网站搜索引擎优化的主要特征
  • 麦田 网站建设响应式公司官网建设
  • 网站建设一对一培训建设英文网站
  • 青岛专业网站推广设计公司公司注册地址和经营地址不一致可以吗
  • 网站如何做好用户体验快懂百科登录入口
  • 花钱做的网站推广被骗网站建设维护和服务合同
  • 海南省建设网站的公司电话手机商城网站案例
  • 台州网站建设推广西安企业建站在哪里做
  • 台州有哪些做网站的公司抖音小程序定制