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

时间:2015-09-16 21:18:43

标签: c++ conways-game-of-life

我正在尝试为康威的生活游戏写一个计数邻居方法。如果死细胞与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;
}

1 个答案:

答案 0 :(得分:0)

@AlexD指出,i<row+1应为i<=row+1,这可以解释你的答案。