public SudokuSolver(SudokuGrid grid) { Cells = grid.Cells; CreateMatrix(grid); for (int x = 0; x < Cells; ++x) { for (int y = 0; y < Cells; ++y) { if (grid.FlagAt(x, y) != SudokuGrid.CellFlags.Free) { TrySelectCandidate(GetCandidate(x, y, grid.ValueAt(x, y))); } } } }