Исходя из моего понимания вашего кода (и игры жизни), вам не нужно хранить x
и y
. На самом деле вам нужно сохранить пары (x, y)
, в которых ячейка изменяет состояние.
Вы можете сделать это, создав пары и добавив их в списки.
Но другая идея заключается в том, что использовать второй массив, представляющий следующее поколение игры, и поместить туда все новые значения; например,
for (int x = 0; x < 30; x++) {
for (int y = 0; y < 30; y++) {
int numNeighbours = numNeighbours(x,y);
if (cells[x][y] == true) {
if (numNeighbours > 3 || numNeighbours <= 1) {
cellsNext[x][y] = false;
} else {
cellsNext[x][y] = true;
}
}
else if (cells[x][y] == false) {
if (numNeighbours == 3) {
cellsNext[x][y] = true;
} else {
cellsNext[x][y] = false;
}
}
}
}
Примечание: это можно было бы упростить / написать лучше, но я написал это выше, чтобы вы могли ясно видеть, что я сделал.