生命游戏(python版)
作者为编程萌新,如有不正之处,恳请大家多多指教!
同样的,先介绍一下生命游戏:
游戏开始时,每个细胞随机地设定为“生”或“死”之一的某个状态。然后,根据某种规则,计算出下一代每个细胞的状态,画出下一代细胞的生死分布图。
应该规定什么样的迭代规则呢?需要一个简单的,但又反映生命之间既协同又竞争的生存定律。为简单起见,最基本的考虑是假设每一个细胞都遵循完全一样的生存定律;再进一步,把细胞之间的相互影响只限制在最靠近该细胞的8个邻居中。
也就是说,每个细胞迭代后的状态由该细胞及周围8个细胞状态所决定。作了这些限制后,仍然还有很多方法来规定“生存定律”的具体细节。例如,在康威的生命游戏中,规定了如下生存定律。
(1)当前细胞为死亡状态时,当周围有3个存活细胞时,则迭代后该细胞变成存活状态(模拟繁殖);若原先为生,则保持不变。
(2)当前细胞为存活状态时,当周围的邻居细胞低于两个(不包含两个)存活时,该细胞变成死亡状态(模拟生命数量稀少)。
(3)当前细胞为存活状态时,当周围有两个或3个存活细胞时,该细胞保持原样。
(4)当前细胞为存活状态时,当周围有3个以上的存活细胞时,该细胞变成死亡状态(模拟生命数量过多)。
可以把最初的细胞结构定义为种子,当所有种子细胞按以上规则处理后,可以得到第1代细胞图。按规则继续处理当前的细胞图,可以得到下一代的细胞图,周而复始。
——————百度百科
代码的原理我已经在另一篇文章说了,直接上代码:
goboard=[[i for j in range(19)]for i in range(19)] #定义棋盘
for a in range(19): #初始化for b in range(19):goboard[a][b]=0print("please put in some number to initialize the goboard")
goboard[6][6]=1 #赋初值样例(滑翔机)暂未实现人机交互
goboard[6][7]=1
goboard[6][8]=1
goboard[4][7]=1
goboard[5][8]=1
passfor a in range(19): #打印初始棋盘for b in range(19):print(goboard[a][b],end="")print("")goboard2=[[m for n in range(19)]for m in range(19)] #设置一变量棋盘
for a in range(19): #初始化2for b in range(19):goboard2[a][b]=0for x in range(10): #自定义循环次数for a in range(1,17,1):for b in range(1,17,1):c=goboard[a+1][b]d=goboard[a-1][b]e=goboard[a][b+1]f=goboard[a][b-1]g=goboard[a+1][b+1]h=goboard[a+1][b-1]k=goboard[a-1][b+1]l=goboard[a-1][b-1]if (c+d+e+f+g+h+k+l)==3:goboard2[a][b]=1elif (c+d+e+f+g+h+k+l)==2:goboard2[a][b]=goboard[a][b]else:goboard2[a][b]=0y=(input())for a in range(19): #打印棋盘for b in range(19):print(goboard2[a][b],end="")print("")for a in range(19): #棋盘转换for b in range(19):goboard[a][b]=goboard2[a][b]
如果两种语言都会的可以对比一下,完全一模一样。只会python的可以参考这篇文章。
生命游戏(python版)相关推荐
- 24点游戏python版
24点游戏python版 问题描述与规则 24点游戏是经典的纸牌益智游戏.常见游戏规则:从扑克中每次取出4张牌.使用加减乘除,第一个能得出24者为赢.(其中,J代表11,Q代表12,K代表13,A代表 ...
- 康威生命游戏简易版python_turtle实现
以下资料引用至百度百科 康威生命游戏(Game of Life),剑桥大学约翰·何顿·康威设计的计算机程序. 概述: 生命游戏没有游戏玩家各方之间的竞争,也谈不上输赢,可以把它归类为仿真游戏.事实 ...
- 生命游戏(Java版)
游戏简介 生命游戏(game of life)为1970年由英国数学家J. H. Conway所提出 某细胞的邻居包括上.下.左.右.左上.左下.右上与右下相邻之细胞 游戏规则如下: 孤单死亡 如果细 ...
- linux生命游戏实现,模拟生命——Conway生命游戏python实现(详细注释笔记)
规则: 每个细胞有两种状态-存活ON或死亡OFF,每个细胞与以自身为中心的周围八格细胞产生互动.(请想象九宫格) 1)人口过少:当周围低于2个(不包含2个)存活细胞时, 本单元活细胞死亡. 2)稳定: ...
- Conway‘s Game of Life - Unlimited Edition(康威生命游戏-无限版)
最近也不知道在忙啥,反正好久没玩 codewars 了,上去看看的时候偶尔看到了一个很有意思的题目,稍微看了一下说明,感觉可以做出来,于是就开始了长达 2+2 个小时的解题过程. 下面是简单的题目说明 ...
- HangMan 猜单词 一个简易的吊死鬼游戏 python版
一个很简单的猜单词游戏. 你的机会是有限的,你每猜错一次,你要拯救的小人就出现一部分. 当整个小人出现的时候,游戏结束,你便看到了惨象:一个吊死的屌丝! 可以把单词换成你每天背的单词,便于复习... ...
- 生命游戏c++版代码
https://github.com/runman33/my-travel-plans/new/master 上面是github仓库地址,需要可以自行fork
- 201712-2 CCF认证考试 游戏 Python版
第一题最小差值 满分答案: n,k = map(int,input().split()) m = n num = [[0 for i in range(2)]for j in range(n)] co ...
- 【生命游戏】纯前端web版,可在线体验
前言 关于[生命游戏]之前小编写发过一篇Java版的,这里就不再对其介绍了,不了解的读者可以点下方链接前往了解: https://blog.csdn.net/weixin_44155115/artic ...
- turtle实例6 生命游戏
生命游戏 百科 细胞自动机(又称元胞自动机),名字虽然很深奥,但是它的行为却是非常美妙的.所有这些怎样实现的呢?我们可以把计算机中的宇宙想象成是一堆方格子构成的封闭空间,尺寸为N的空间就有NN个格子. ...
最新文章
- 语义分割--Efficient Deep Models for Monocular Road Segmentation
- Spark详解(七):SparkContext源码分析以及整体作业提交流程
- mysqldump: command not found
- 跨库查询(OpenDataSource)与链接服务器(Linking Server)
- c语言语法分析源程序,深入浅出编译原理-5-一个简单语法分析器的C语言实现
- 20145212 《信息安全系统设计基础》第3周学习总结
- Android:最全面的 Webview 详解
- 基于JAVA+SpringMVC+MYSQL的自动排课系统
- 云原生落地困挑战无处不在?我选Serverless
- jdbc 连接 mysql 时的中文乱码问题
- svm中的数学和算法
- 万能五笔输入法@相反
- 数控编程球面计算机,Mastercam9.1的数控编程
- 一三五、服务器部署Node项目、Vue spa静态项目、ssr项目
- 视频必备资源:免费音效素材下载
- Python之爬虫之BeautifulSoup学习
- 政务区块链平台设计思路
- 浅谈大学参加程序竞赛
- 枚举.........
- 趣味端午节,我的端午互动小平台
热门文章
- Windows phone 7中关于Zune软件使用几个问题
- Win32反汇编(四)栈的工作原理与堆栈平衡,函数方法参数的调用约定
- 利用StretchDIBits、CreateDIBSection、CreateDIBitmap三种方法显示内存位图
- java redis令牌桶_redis实现的简单令牌桶
- 欢迎使用CSDN论坛阅读器 : CSDN Reader(附全部源代码) 最新版本:20110222
- 报童问题详细推导及利用Python的SAA方法求解
- ADT下载地址(含各版本),最新ADT-23.0.7
- word文件转pdf转换器11.0注册码
- oracle公司财务管理课程设计,Oracle财务管理系统培训手册—资产模块(FA).doc
- Duilib--->Duilib库介绍总结概述