您的位置  > 互联网

(手游坊评测)游戏界面展示图——生命游戏

目录

1. 游戏界面显示

图1 演示界面

2. 生命游戏概述

它被命名为“生命的游戏”,因为它模拟和显示的图像看起来非常类似于生命的诞生和繁殖过程。 随着游戏的进行,混沌细胞会逐渐进化成各种精美有形的结构; 这些结构往往具有良好的对称性,而且形状每一代都在变化。 有些形状一旦锁定就不会一代又一代地改变。 有时,一些已经形成的结构会因为一些紊乱细胞的“入侵”而被破坏。 秩序往往是从混乱中产生的。

生命游戏是一款二维网格游戏,其中每个方格都居住着一个活的或死的细胞。 一个细胞下一时刻的生死取决于相邻8个方格中活细胞或死细胞的数量。 如果相邻方格内的活细胞过多,则该细胞会因资源缺乏而在下一时刻死亡; 反之,如果周围的活细胞太少,细胞就会因孤独而死亡。 在游戏的初始阶段,玩家可以设置周围活细胞(邻居)的数量和位置。 如果邻居细胞的数量设置得太高,网格中的大多数细胞都会因为找不到资源而死亡,直到整个网格毫无生气; 如果相邻细胞的数量设置得太低,世界将遭受生命匮乏的困扰。 无法重现。 实际中,邻区数量一般选择2个或3个; 这样,整个生存世界就不会太荒凉,也不会太拥挤,而是一种动态的平衡。 游戏规则是:当一个方格周围有两到三个活细胞时,下一时刻该方格内的活细胞将继续存活; 即使此刻方格内没有活细胞,下一刻也会有活细胞“诞生”。 细胞。 在这个游戏中,还可以设定一些更复杂的规则。 例如,当前方格的地位不仅由父辈决定,还要考虑到祖父辈的情况。

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

“死或生”。 黑色方块表示该单元格是“活的”,空格(白色)表示该单元格是“死的”。 也就是说,方格中的黑色部分代表了某一时刻某一种“生命”的分布图。 生命游戏试图模拟这种分布如何随着时间的推移一代又一代地变化。

3.生命游戏的生存规则

当游戏开始时,每个细胞被随机设置为“生”或“死”状态。 然后,根据一定的规则,计算下一代每个细胞的状态,绘制下一代细胞的生死分布图。

应该指定什么样的迭代规则? 需要一个反映生命之间合作和竞争的简单生存法则。 为了简单起见,最基本的考虑是假设每个细胞都遵循完全相同的生存法则; 此外,细胞之间的相互作用仅限于距离该细胞最近的 8 个邻居。

换句话说,迭代后每个细胞的状态是由该细胞和周围8个细胞的状态决定的。 做出了这些限制之后,仍然有很多方式来规定“生存法则”的具体细节。 例如,在康威的《生命游戏》中,阐述了以下生存法则。

(1)当当前细胞处于死亡状态,且其周围有3个活细胞时,迭代后该细胞将变为活细胞(模拟繁殖); 如果它本来是活着的,它就会保持不变。

(2)当当前细胞处于存活状态,且周围邻居细胞存活少于两个(不包括两个)时,该细胞就变成死亡状态(模拟生命稀缺)。

(3)当前细胞处于存活状态时,当其周围有两个或三个存活细胞时,该细胞保持不变。

(4)当前细胞处于存活状态时,当其周围存活细胞超过3个时,该细胞就变成死亡细胞(模拟生命过多)。

初始细胞结构可以定义为种子。 当所有种子细胞按照上述规则处理后,即可得到第一代细胞图谱。 按照规则继续处理当前的单元图,就可以得到下一代的单元图,循环重新开始。

当然,以上生存法则可以随意修改,创造出不同的“生命游戏”。

演示如图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代码

代码如下所示:

Sub 生命游戏()
Dim n As Integer
n = Range("CR7")
Do While n >= 0
    Range("AL2:BT69").Select
    Selection.Copy
    Range("B2").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, skipblanks:=False, Transpose:=False
    Range("A1").Select
n = n - 1
Loop
End Sub

4.9 制作按钮

制作按钮、插入图形以及将图形与宏关联。

图13 设置宏

4.10 自定义迭代次数

设置可自定义的迭代次数。 用迭代次数填充单元格,并使用代码读取单元格中的次数。 代码与上面相同。

图14 迭代次数设置

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