生命游戏中的蟾蜍模式

时间:2012-08-16 07:03:19

标签: java javascript java-ee design-patterns conways-game-of-life

我试图为测试解决生命游戏问题。那场比赛的规则是:

任何活着的邻居少于两个的活细胞都会死亡,就像人口不足一样。 任何有两三个活着的邻居的活细胞都活在下一代。 任何有三个以上活着的邻居的活细胞都会死亡,就像过度拥挤一样。 具有正好三个活邻居的任何死细胞变成活细胞,就好像通过繁殖一样。

我测试了我的工作,如下面所示的Block,Boat,Blinker和Toad图案等各种模式。 但是我的代码没有给出toad模式的预期输出,如图所示......尽管它对其他所有模式都很好。

我为TOAD获取此输出:

X--X
X---
--X-

我检查了各种网站,他们也显示了与下面相同的输出,但是如果我们应用规则,则第二行和最后一列中的单元格不能存活。

  

所以有人可以告诉我哪个是正确的输出?我必须这样   确定这是我的测试...

谢谢..

**Expected Output**

1.  Block Pattern
Input
X X
X X 
Output
X X
X X

2.  Boat Pattern
Input 
X X -
X - X
- X -
Output 
X X -
X - X
- X -

3.  Blinker Pattern
Input
- X -
- X -
- X - 
Output 
- - -
X X X
- - -

4. Toad Pattern
Input
- X X X
X X X -
- - X -
Output
X - - X
X - - X
- X - -

2 个答案:

答案 0 :(得分:3)

我通过谷歌找到的蟾蜍模式的所有例子都是这样的:

州1:

- - - -
- x x x
x x x -
- - - -

州2:

- - x -
x - - x
x - - x
- x - -

这两个州如此振荡:

Animated example from Wikipedia

您的输入似乎缺少顶行,并且底行还有一个额外的活动单元格。作为旁注,你提到的“臃肿”模式实际上被称为“船”,因为它看起来像是一艘小船的俯视图。

请参阅:

答案 1 :(得分:3)

您描述的TOAD输入的输出符合您所述的规则。规定的预期输出与规则不符。

目前尚无法确定您的计划存在问题,但正如您对TOAD的解释一样,正如veredesmarald所述。

我还会注意到您为TOAD定义了输入/预期输出,如下所示:

Input
- X X X
X X X -
- - X -
Output
X - - X
X - - X
- X - -

如果我将“Output”行向上移动一行,结果与TOAD输入/输出的标准/预期定义相匹配:

Input
- X X X
X X X -
Output  // swapped with line below
- - X -
X - - X
X - - X
- X - -

在翻译中看起来很简单,你的程序可能会很好。