前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >R中实现生命游戏简单图形

R中实现生命游戏简单图形

作者头像
Listenlii-生物信息知识分享
发布2022-03-31 21:44:59
6770
发布2022-03-31 21:44:59
举报

昨天简单介绍了一篇文章及生命游戏在R中的实现:

PNAS:模拟微生物群落互作及生命游戏在R中的实现

生命游戏中有不少有趣的图形,今天又玩了一下,顺便做一介绍。代码用昨天的即可实现。

注意,代码中判断下个状态是否有细胞存在这句改了一下,之前理解的有点问题,另外规则也不完全对。判断规则参考https://conwaylife.com/wiki/Main_Page

稳定:如果细胞的邻居为2个或3个,则下一次状态为稳定存活;

复活:如果某位置原无细胞存活,而该位置的邻居为3个,则该位置将复活一个细胞。

代码语言:javascript
复制
life.next[i,j] =  ifelse( ((fun.sum == 2|fun.sum == 3)& life[[k-1]][i,j]==1) | (fun.sum == 3 & life[[k-1]][i,j]==0), 1, 0)

生命游戏基本图形介绍及在R中的实现:

只需要改变初始输入的矩阵即可。

1. 固定模式。即图形不会发生变化。如四个细胞围成的正方形。

代码语言:javascript
复制
# 恒定
size = 4  
d1 = c(0,0,0,0,
       0,1,1,0,
       0,1,1,0,
       0,0,0,0)
start = matrix(data=d1,ncol=size,nrow=size)

2. 震荡模式,图形会在几个样式之间来回震荡,如一条线的样式。

代码语言:javascript
复制
# 震荡
size = 5  
d2 = c(0,0,0,0,0,
       0,0,1,0,0,
       0,0,1,0,0,
       0,0,1,0,0,
       0,0,0,0,0)
start = matrix(data=d2,ncol=size,nrow=size)

3. 滑翔机模式。细胞会像滑翔机一样不断移动且变化样式。

代码语言:javascript
复制
# 滑翔机
size = 6 
d3 = c(0,0,0,1,0,0,
       0,1,0,1,0,0,
       0,0,1,1,0,0,
       0,0,0,0,0,0,
       0,0,0,0,0,0,
       0,0,0,0,0,0)
start = matrix(data=d3,ncol=size,nrow=size)

4. 脉冲星。细胞好像脉冲星一样的炸裂。

代码语言:javascript
复制
size = 15  
d4 = c(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
       0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,
       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
       0,1,0,0,0,0,1,0,1,0,0,0,0,1,0,
       0,1,0,0,0,0,1,0,1,0,0,0,0,1,0,
       0,1,0,0,0,0,1,0,1,0,0,0,0,1,0,
       0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,
       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
       0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,
       0,1,0,0,0,0,1,0,1,0,0,0,0,1,0,
       0,1,0,0,0,0,1,0,1,0,0,0,0,1,0,
       0,1,0,0,0,0,1,0,1,0,0,0,0,1,0,
       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
       0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,
       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)
start = matrix(data=d4,ncol=size,nrow=size)

更多好玩的图形,详见:

https://conwaylife.com/wiki/Main_Page

本文参与?腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-02-22,如有侵权请联系?cloudcommunity@tencent.com 删除

本文分享自 Listenlii 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与?腾讯云自媒体分享计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com