Stewie的《生命与疲劳游戏》与更著名的Conway的《生命游戏》非常相似。
Stewie的“生命与疲劳游戏”(GoLF)的宇宙是一个由正方形单元组成的无限二维正交网格,每个网格都处于三种可能的状态之一,即活着,死亡或疲倦。每个单元都与其八个相邻的单元进行交互,这八个单元是水平,垂直或对角线相邻的单元。在每个时间步上,都会发生以下转换:
- 任何具有少于两个活邻居的活细胞都会死亡,好像是由于人口不足造成的。
- 任何有两个或三个活邻居的活细胞都可以存活到下一代。
- 任何具有三个以上活邻居的活细胞都会死亡,就好像人口过多一样。
- 具有正好三个活邻居的任何死细胞都将变成活细胞,就像通过繁殖一样。
- 连续存活了两个世代的任何细胞都会死亡,好像是由于疲劳而死亡。直到下一代,它才能重生
- 输入网格边界之外的任何像元都将消失,就像从悬崖上掉下来一样。
挑战:
您面临的挑战是获取一个代表GoLF初始状态的n×m尺寸的网格和一个整数p,并在p代之后输出游戏的状态。
规则:
- 输入和输出格式是可选的,但输入/输出网格应具有相同的表示形式
- 您可以选择任何可打印的符号来表示活细胞和死细胞(我将
1
用于活细胞和0
死细胞)。 - 您可以选择索引为0还是1。在示例中,
p=1
是指一步之后的状态。 - 每种语言中最短的代码获胜
- 允许用于蜂窝自动化的内置功能
测试用例:
在示例中,我仅在输入中包含输入网格,而不是p。我提供了各种p值的输出。您只能输出与给定输入p一起的网格。
Input:
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
--- Output ---
p = 1
0 0 0 0 0
0 0 0 0 0
0 1 1 1 0
0 0 0 0 0
0 0 0 0 0
p = 2
0 0 0 0 0
0 0 1 0 0
0 0 0 0 0
0 0 1 0 0
0 0 0 0 0
p = 3 -> All dead
---
Input:
0 1 0 0 0 0
0 0 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
0 0 0 0 0 0
--- Output ---
p = 1
0 0 0 0 0 0
1 0 1 0 0 0
0 1 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 0 0 0
p = 2
0 0 0 0 0 0
0 0 0 0 0 0
1 0 0 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 0
p = 3
0 0 0 0 0 0
0 0 0 0 0 0
0 1 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
p = 4 -> All dead
Input
0 1 1 0 1 1 0
1 1 0 1 1 1 1
0 1 0 0 0 1 0
0 0 0 1 1 0 1
1 0 0 1 0 1 1
0 0 1 1 0 1 1
1 1 0 0 0 0 1
--- Output ---
p = 1
1 1 1 0 0 0 1
1 0 0 1 0 0 1
1 1 0 0 0 0 0
0 0 1 1 0 0 1
0 0 0 0 0 0 0
1 0 1 1 0 0 0
0 1 1 0 0 1 1
p = 2
1 0 0 0 0 0 0
0 0 0 0 0 0 0
1 0 0 1 0 0 0
0 1 1 0 0 0 0
0 1 0 0 0 0 0
0 0 0 0 0 0 0
0 0 1 1 0 0 0
p = 3
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 1 1 0 0 0 0
1 1 0 0 0 0 0
0 1 1 0 0 0 0
0 0 1 0 0 0 0
0 0 0 0 0 0 0
p = 4
0 0 0 0 0 0 0
0 0 0 0 0 0 0
1 1 1 0 0 0 0
1 0 0 0 0 0 0
1 0 1 0 0 0 0
0 1 1 0 0 0 0
0 0 0 0 0 0 0
p = 5
0 0 0 0 0 0 0
0 1 0 0 0 0 0
1 0 0 0 0 0 0
0 0 1 0 0 0 0
1 0 0 0 0 0 0
0 1 0 0 0 0 0
0 0 0 0 0 0 0
p = 6
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 1 0 0 0 0 0
0 1 0 0 0 0 0
0 1 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
p = 7
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 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
p = 8
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 1 0 0 0 0 0
0 0 0 0 0 0 0
0 1 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
p = 9 -> All dead
是的,我知道所有初始种子不会在所有死亡的细胞中结束。
你或许应该澄清的是过渡项目5为应用1--4前应用“在同一时间”为项目1--4,也就是说,它是基于状态
—
路易斯Mendo
“ 细胞,其中的每一个是在两种可能的状态,活的或死的一个 ”看起来给出通过使每个小区,所述后疲劳规则只能在一个标准的有限自动机中表达的故意不正当定义有三种状态(死的,新活着,连续两代都活着)
—
彼得·泰勒
如果有人愿意,我对此有一个愚蠢的规则。
—
CalculatorFeline
玩GoD,是吗?
—
亚当