public void ProgressTime() { var gridCopy = _grid.DeepCopy(); for (var y = 1; y <= _grid.Height; y++) { for (var x = 1; x <= _grid.Length; x++) { var currentCellCoords = new[] { x, y }; var neighbourCoordsList = _grid.FindNeighbourCoordsOf(currentCellCoords); ApplyGameRules(currentCellCoords, neighbourCoordsList, gridCopy); } } }