Я пытаюсь написать программу, которая реализует игру Жизни Конвея на сетке из ячеек 20х60. Сетка должна обернуться так, чтобы левая сторона была подключена к правой стороне, а верхняя часть - к нижней.Обтекание сетки с помощью modulo
Таким образом, любая ячейка с положением (0, col)
, будет иметь соседа по адресу (maxRow, col)
. Любая ячейка с положением (row, 0)
будет иметь соседа по адресу (row, maxCol)
.
Следующая функция должна подсчитывать количество соседних ячеек. Он работает для координат не по краям, а не по тем, которые есть. Например, если есть точки в (0, 10)
, (0, 11)
, (0, 12)
и (0, 10)
передается в функцию, он будет возвращать большое число в качестве соседнего счета вместо 1
. Я знаю, что оператору мод %
было бы полезно, но я не понимаю, как его использовать.
{
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]; }
if (row==maxrow-1 || row==0)
count = count+ grid [(row-(maxrow-1))*-1][col-1]+grid[(row-(maxrow-1))*-1][col]+grid[(row-(maxrow-1))*-1][col+1];
if (col==0 || col==maxcol-1)
count=count +grid[row-1][(col-(maxcol-1))*-1]+grid[row][(col-(maxcol-1))*-1]+grid[row+1][(col-(maxcol-1))*-1];
count -= grid[row][col];
return count;
}