// Code snippet for counting neighbors, // accounting for edges and corners int countNeighbors(int *board, int i, int j, int rows, int cols) { int deltaI, deltaJ, n = 0; for (deltaI = -1; deltaI <= 1; deltaI++) { for (deltaJ = -1; deltaJ <= 1; deltaJ++) { if (!(deltaI == 0 && deltaJ == 0)) n += get(board, i+deltaI, j+deltaJ, rows, cols); } } return n; } int get(int *board, int i, int j, int rows, int cols) { int newI, newJ; newI = (i + rows) % rows; newJ = (j + cols) % cols; return board[newI * cols + newJ]; }