我必须计算每个单元格有多少个“活着”(在本例中是一个char:'o')neigbours。每个细胞有8个邻居(这是康威的《生命的游戏》(the game of life)
“正如你所注意到的,每个细胞有八个邻居。我们认为宇宙是周期性的:边界细胞也有八个邻居。例如:来自“正常”牢房的邻居
如果单元格是右边框,则其右(东)邻是同一行中最左边的单元格。如果单元格是底部边框,则其底部(南)相邻单元格是同一列中最上面的单元格。当一个单元格是边框和一个单元格是顶角时
这些链接是如何在“异常”情况下检查单元格的可视化显示。
我在网上找到这个:
`for (int x = -1; x <= 1; x += 1) {
for (int y = -1; y <= 1; y += 1) {
int r = i + y;
int c = j + x;
if (r >= 0 && r < n && c >= 0 && c < n && !(y == 0 && x == 0) && currentUniverse[i][j] == 'O') {
neighbours++;
}`
然而,这似乎不起作用。。。我不能想出一个整洁的,最聪明的/方便的/简短的代码来检查一个位置上有多少个活的邻居(比如 currentUniverse[i][j]
)有。。。
有人有什么建议、建议或其他帮助吗?
1条答案
按热度按时间xj3cbfub1#
试试这个。我使用n作为数组的大小(假设为正方形)。