Interface IPuzzleSolver<TPuzzle>
Solves puzzles of the given type.
Namespace: SudokuSpice
Assembly: SudokuSpice.dll
Syntax
public interface IPuzzleSolver<TPuzzle>
where TPuzzle : class, IPuzzle<TPuzzle>
Type Parameters
Name | Description |
---|---|
TPuzzle | The type of puzzle to solve. |
Methods
| Improve this Doc View SourceComputeStatsForAllSolutions(TPuzzle, Nullable<CancellationToken>)
Finds stats for all the solutions to the given puzzle. The puzzle is left unchanged.
Declaration
SolveStats ComputeStatsForAllSolutions(TPuzzle puzzle, CancellationToken? token = default(CancellationToken? ))
Parameters
Type | Name | Description |
---|---|---|
TPuzzle | puzzle | |
System.Nullable<System.Threading.CancellationToken> | token |
Returns
Type | Description |
---|---|
SolveStats |
Exceptions
Type | Condition |
---|---|
System.OperationCanceledException | May be thrown if the given cancellation token is canceled during the operation. |
HasUniqueSolution(TPuzzle, Nullable<CancellationToken>)
Determines if the given puzzle has a unique solution. The puzzle is left unchanged.
Declaration
bool HasUniqueSolution(TPuzzle puzzle, CancellationToken? token = default(CancellationToken? ))
Parameters
Type | Name | Description |
---|---|---|
TPuzzle | puzzle | |
System.Nullable<System.Threading.CancellationToken> | token |
Returns
Type | Description |
---|---|
System.Boolean |
Exceptions
Type | Condition |
---|---|
System.OperationCanceledException | May be thrown if the given cancellation token is canceled during the operation. |
Solve(TPuzzle, Boolean)
Solves the given puzzle in place.
Declaration
TPuzzle Solve(TPuzzle puzzle, bool randomizeGuesses = false)
Parameters
Type | Name | Description |
---|---|---|
TPuzzle | puzzle | The puzzle to solve. This will be copied instead of solved in-place. |
System.Boolean | randomizeGuesses | If true, this will guess in a random order when forced to guess. Else, the guessing order is up to the implementation, but it should be stable. |
Returns
Type | Description |
---|---|
TPuzzle | A solved copy of the given puzzle. |
Exceptions
Type | Condition |
---|---|
System.ArgumentException | Thrown if this puzzle can't be solved by this solver. |
TrySolve(TPuzzle, Boolean)
Attempts to solve the given puzzle.
Declaration
bool TrySolve(TPuzzle puzzle, bool randomizeGuesses = false)
Parameters
Type | Name | Description |
---|---|---|
TPuzzle | puzzle | The puzzle to solve. This will be solved in place. |
System.Boolean | randomizeGuesses | If true, this will guess in a random order when forced to guess. Else, the guessing order is up to the implementation, but it should be stable. |
Returns
Type | Description |
---|---|
System.Boolean |