在 C++ 中为 Conway 的生命游戏计算相邻单元格

Counting neighboring cells for Conway's Game of Life in C++

我正在尝试为康威的人生游戏编写一个计算邻居的方法。如果一个死细胞与 2 或 3 个活细胞相邻,它应该会复活。但是,我的代码没有正确计算所有邻居。如果我给出输入坐标 (10, 10), (10, 11), (10, 12) 这将产生

   ***

程序会将下一代打印为

    *
    *

坐标为 (10, 11) 和 (11, 11)。但是,在 (9,11) 处也应该有一个点。我知道问题出现在这个函数中,并且对于点 (9,11),函数不计算 3 个邻居。

int Life::neighbor_count (int row, int col)
{
  int i, j;
  int count=0;
  for(i=row-1; i<row+1; i++){
    for (j=col-1; j<=col+1; j++){
      count +=grid[i][j];//increase the count is neighbor is alive
    }
  }
  count -=grid [row][col];//reduce count, since cell is not its own neighbor
  return count;
}

正如@AlexD 指出的那样,i<row+1 应该是 i<=row+1,这可以解释您的答案。