Exemple #1
0
 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;
 }