我试图为测试解决生命游戏问题。那场比赛的规则是:
任何活着的邻居少于两个的活细胞都会死亡,就像人口不足一样。 任何有两三个活着的邻居的活细胞都活在下一代。 任何有三个以上活着的邻居的活细胞都会死亡,就像过度拥挤一样。 具有正好三个活邻居的任何死细胞变成活细胞,就好像通过繁殖一样。
我测试了我的工作,如下面所示的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 - -
答案 0 :(得分:3)
我通过谷歌找到的蟾蜍模式的所有例子都是这样的:
州1:
- - - -
- x x x
x x x -
- - - -
州2:
- - x -
x - - x
x - - x
- x - -
这两个州如此振荡:
您的输入似乎缺少顶行,并且底行还有一个额外的活动单元格。作为旁注,你提到的“臃肿”模式实际上被称为“船”,因为它看起来像是一艘小船的俯视图。
请参阅:
答案 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 - -
在翻译中看起来很简单,你的程序可能会很好。