如何计算矩阵中的邻居数?

时间:2014-03-03 01:12:45

标签: c++ dynamic file-io multidimensional-array conways-game-of-life

好的,所以我在C中制作生活游戏,我无法弄清楚如何从矩阵中计算邻居..

这是我目前的代码

http://pastebin.com/8fTdbpfs

抱歉,我认为它在pastebin上看起来更好。

1 个答案:

答案 0 :(得分:0)

对于位置(i,j)的单元格,即i行,j列,其所有八个邻居的坐标为

(i-1,j-1) | (i-1,j) | (i-1,j+1)
----------+---------+----------
(i,  j-1) | (i  ,j) | (i  ,j+1)
----------+---------+----------
(i+1,j-1) | (i+1,j) | (i+1,j+1)

在二维数组array[row][col]中,您可以array[i][j]访问它们。当然,在尝试访问该坐标处的单元格之前,您需要确保每个坐标都有效,您可以使用以下条件进行此检查:

// for coordinate (i, j) in array[row][col]
if ((0 <= i) && (i < row) && (0 <= j) && (j < col)) {
    /* access array[i][j] */
}