当前位置:   article > 正文

史上最详细Excel制作生命游戏,体验生命演化。_excel制作游戏

excel制作游戏

Excel制作生命游戏

目录

Excel制作生命游戏

目录

1.游戏界面展示

2.生命游戏概述

3.生命游戏生存规则

4.使用Excel模拟生命游戏

4.1制作流程

4.2打开Excel

4.3设置单元格

4.4绘制演示区

4.5设置条件格式

4.6形成双演示区域

4.7编辑公式

4.8编写VBA代码

4.9制作按钮

4.10自定义迭代次数


1.游戏界面展示

图1 演示界面

2.生命游戏概述

因为它模拟和显示的图像看起来颇似生命的出生和繁衍过程而得名为“生命游戏。在游戏进行中,杂乱无序的细胞会逐渐演化出各种精致、有形的结构;这些结构往往有很好的对称性,而且每一代都在变化形状。一些形状一经锁定就不会逐代变化。有时,一些已经成形的结构会因为一些无序细胞的“入侵”而被破坏。但是形状和秩序经常能从杂乱中产生出来。

    生命游戏是一个二维网格游戏,这个网格中每个方格居住着一个活着或死了的细胞。一个细胞在下一个时刻的生死取决于相邻8个方格中活着或死了的细胞的数量。如果相邻方格活着的细胞数量过多,这个细胞会因为资源匮乏而在下一个时刻死去;相反,如果周围活细胞过少,这个细胞会因为孤单而死去。在游戏初始阶段,玩家可以设定周围活细胞(邻居)的数目和位置。如果邻居细胞数目设定过高,网格中大部分细胞会因为找不到资源而死去,直到整个网格都没有生命;如果邻居细胞数目设定过低,世界中又会因为生命稀少而得不到繁衍。实际中,邻居细胞数目一般选取2或者3;这样整个生命世界才不至于太过荒凉或拥挤,而是一种动态平衡。游戏规则是:当一个方格周围有两个或3个活细胞时,方格中的活细胞在下一个时刻继续存活;即使这个时刻方格中没有活细胞,在下一个时刻也会“诞生”活细胞。在这个游戏中,还可以设定一些更加复杂的规则,例如当前方格的状态不仅由父一代决定,而且还考虑到祖父一代的情况。

每个方格中都可放置一个生命细胞,每个生命细胞只有两种状态:

“生”或“死”。用黑色方格表示该细胞为“生”,空格(白色)表示该细胞为“死”。或者说方格网中黑色部分表示某个时候某种“生命”的分布图。生命游戏想要模拟的是:随着时间的流逝,这个分布图将如何一代一代地变化。

3.生命游戏生存规则

游戏开始时,每个细胞随机地设定为“生”或“死”之一的某个状态。然后,根据某种规则,计算出下一代每个细胞的状态,画出下一代细胞的生死分布图。

应该规定什么样的迭代规则呢?需要一个简单的,但又反映生命之间既协同又竞争的生存定律。为简单起见,最基本的考虑是假设每一个细胞都遵循完全一样的生存定律;再进一步,把细胞之间的相互影响只限制在最靠近该细胞的8个邻居中。

也就是说,每个细胞迭代后的状态由该细胞及周围8个细胞状态所决定。作了这些限制后,仍然还有很多方法来规定“生存定律”的具体细节。例如,在康威的生命游戏中,规定了如下生存定律。

(1)当前细胞为死亡状态时,当周围有3个存活细胞时,则迭代后该细胞变成存活状态(模拟繁殖);若原先为生,则保持不变。

(2)当前细胞为存活状态时,当周围的邻居细胞低于两个(不包含两个)存活时,该细胞变成死亡状态(模拟生命数量稀少)。

(3)当前细胞为存活状态时,当周围有两个或3个存活细胞时,该细胞保持原样。

(4)当前细胞为存活状态时,当周围有3个以上的存活细胞时,该细胞变成死亡状态(模拟生命数量过多)。

可以把最初的细胞结构定义为种子,当所有种子细胞按以上规则处理后,可以得到第1代细胞图。按规则继续处理当前的细胞图,可以得到下一代的细胞图,周而复始。

上面的生存定律当然可以任意改动,发明出不同的“生命游戏”。

演示如图2所示

 

图2 生命游戏演示

1号从“死亡状态”变成“活着状态”,3号和4号从“活着”变成“死亡”,2号保持状态不变。

4.使用Excel模拟生命游戏

4.1制作流程

 

图3 制作流程图

4.2打开Excel

打开excel,注意是可以运行VBA代码,可以设置宏的excel。

 

图4 打开Excel

4.3设置单元格

将单元格设置为像素是30x30的单元格,目的是正方形的单元格让人看着更舒服。先全选所有单元格,接着鼠标左键点击拖动单元格的边界即可调整。

 

图5 设置单元格

4.4绘制演示区

绘制生命游戏的演示区域,划定边界,生命只在该区域内演变。

图6 演示区

4.5设置条件格式

为演示区域设置条件格式,先全选区域,再设置单元格式,1的单元格填充黑色表示活着,0的单元格填充白色表示死亡。

图7 设置单元格规则

4.6形成双演示区域

复制区域,形成两个演示区域,因为后期的迭代需要通过区域的复制粘贴实现。


 

 

图8 双演示区

4.7编辑公式

开始利用Excel的公式编写规则,将单元格分为三个类型,角单元格、边单元格、内部单元格。在右边演示图中输入公式,用左边的演示图作为判断标准,分别将相关的公式罗列如下:

  图9 角单元格

 图10 边单元格

 图11 内部单元格

4.8编写VBA代码

开始使用VBA实现迭代功能,编写VBA代码。

 

图12 VBA代码

代码如下:

  1. Sub 生命游戏()
  2. Dim n As Integer
  3. n = Range("CR7")
  4. Do While n >= 0
  5.     Range("AL2:BT69").Select
  6.     Selection.Copy
  7.     Range("B2").Select
  8.     Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, skipblanks:=False, Transpose:=False
  9.     Range("A1").Select
  10. n = n - 1
  11. Loop
  12. End Sub

4.9制作按钮

制作按钮,插入图形,将图形和宏进行关联。

图13 设置宏

4.10自定义迭代次数

设置可以自定义的迭代次数。将迭代次数填写单元格中,利用代码读取该单元格的次数,代码同上。

图14 迭代次数设置

绘制初始图形,设置迭代次数,点击运行,即可看到运行效果。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/111397
推荐阅读
相关标签
  

闽ICP备14008679号