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

如何做网站的需求分析如何做网站反链

如何做网站的需求分析,如何做网站反链,石家庄网站建站推广,完整企业网站模板康威生命游戏 康威生命游戏(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/404050/

相关文章:

  • 顺德建设幼儿院报名网站网站排名怎么做上去
  • 网站栏目页怎么做培训学校加盟
  • 国外网站建设平台成都优化外包
  • asp网站开发技术背景介绍wordpress链接公众号
  • 上海企业网站制作多少钱濮阳市平台公司
  • 前程无忧网站开发待遇怎么样wordpress的atl属性怎么设置
  • 网站的类型有哪些人工智能建筑设计软件
  • 网站怎么备案免费制作小程序游戏
  • c mvc制作网站开发陕西网站建设优化技术
  • 网站定制建设哪里好清爽网站
  • 网页制作与网站建设期末考试学淘宝运营去哪里学
  • 二七区建设局网站做外贸建网站
  • 义乌网站设计制作价格建设大型门户网站
  • 上海市建设项目施工审图网站创做阿里巴巴网站流程
  • 雪域什么网站是做电影的网站开发一个支付功能要好多钱
  • 惠州网站小程序建设点网站运营专员是干嘛的
  • 网站开发工程师的职责网络服务协议模板
  • 安徽省建设厅执业资格注册中心网站建设一个网站要多少费用吗
  • 开发网站公司交税wordpress回收站位置
  • 网站设计评价标准网络营销服务的种类
  • 漯河网站建设电话二级网站建设与管理会议
  • 建设网站需要什么设施免费网站建设公司联系方式
  • 国外的ps网站用户界面设计案例
  • 记事本做的网站链接怎么装饰学网站建设需要下载什么
  • 企业建网站多少钱建设手机银行网站
  • 手机企业网站设计理念湖南长沙网站制作
  • h5网站开发公司谷歌商店下载
  • 杭州网站建设报价wordpress 标签链接
  • 做网站办公照片网站建设建设公司
  • 免费做手机网站有哪些用于建设教学网站的建站工具有哪些特点