public void ApplyValueHeuristics(ValueHeuristics heur) { valHeur = heur; if (heur == ValueHeuristics.DEFINITION_ORDER) { return; } if (heur == ValueHeuristics.RANDOM) { Random rand = new Random(2); foreach (SudokuVariable variable in Variables) { variable.OrderedDomain = variable.Domain.OrderBy(v => rand.Next()).ToList(); variable.ResetDomain(); } } if (heur == ValueHeuristics.LEAST_CONSTRAINING_VALUE) { foreach (SudokuVariable v in Variables) { if (v.IsEmpty()) { OrderDomain(v); } } } }
public SudokuSolverAlgorithm(SudokuBook sudokuBook, VariableHeuristics variableHeursitics, ValueHeuristics valueHeuristics) { AllSolutions = new List <Sudoku>(); SudokuBook = sudokuBook; SolvingOrder = new List <VariableConstraint>(); VariableHeuristics = variableHeursitics; ValueHeuristics = valueHeuristics; }