Class: Sudoku::SolutionSet::Process::Steps::PickUnsatisfiedConstraint
- Inherits:
-
Sudoku::SolutionSet::Process::Step
- Object
- Sudoku::SolutionSet::Process::Step
- Sudoku::SolutionSet::Process::Steps::PickUnsatisfiedConstraint
- Defined in:
- lib/sudoku/solution_set/process/steps/pick_unsatisfied_constraint.rb
Instance Attribute Summary
Attributes inherited from Sudoku::SolutionSet::Process::Step
Instance Method Summary collapse
Methods inherited from Sudoku::SolutionSet::Process::Step
#constraints, #delete_excluded_choices_if, #exclude_choice, #excluded_choices, #include_choice, #included_choices, #initialize, #restore_excluded_choices, #retry?, #revert, #take
Constructor Details
This class inherits a constructor from Sudoku::SolutionSet::Process::Step
Instance Method Details
#revert! ⇒ Object
24 25 |
# File 'lib/sudoku/solution_set/process/steps/pick_unsatisfied_constraint.rb', line 24 def revert! end |
#take!(input = nil) ⇒ Object
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
# File 'lib/sudoku/solution_set/process/steps/pick_unsatisfied_constraint.rb', line 6 def take!(input=nil) candidates = constraints.select { |constraint| included_choices.none? { |included_choice| constraint.satisfied_by?(included_choice) } } if candidates.any? candidates.min_by { |constraint| excluded_choices.select { |excluded_choice| constraint.satisfied_by?(excluded_choice) }.size } else :solved end end |