Итак, я играю в жизнь в C и не могу понять, как сосчитать соседей по матрице.
Вот мой текущий код
Извините, я думаю, что на пастбине это выглядит лучше.
Для ячейки на месте (i,j)
то есть я строка, столбец 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] */
}
Других решений пока нет …