|
Describes an Akari puzzle — a shading-type puzzle in which lightbulbs must be placed in vacant cells in such a way
that all cells are illuminated by at least one lightbulb, and no two lightbulbs can shine at each other
horizontally or vertically. Blocks in the grid can block the path of a lightbulb. |
|
Describes a constraint that has no effect on a puzzle, but can be used for coloring the solution. |
|
Describes a constraint in which a specified set of cells must have one of a specified set of value
combinations, but they may be reordered arbitrarily. |
|
Describes a constraint in a number placement puzzle in which cells that are diagonal from each other (like a
bishop’s move in chess) cannot contain the same value. |
|
Describes a constraint in a number placement puzzle in which cells that are at specific relative placements from one
another cannot contain the same value. |
| Describes a constraint that mandates that multiple same-size regions cannot contain the exact same digits. |
|
Describes a constraint in a number placement puzzle where no adjacent cells (including diagonals) can have the same
value. |
|
Describes a constraint in a number placement puzzle in which cells that are a knight’s move away from each other
cannot contain the same value. |
|
Describes an Aquapelago puzzle — a shading puzzle in which shaded cells cannot be orthogonally adjacent, unshaded
cells must all be contiguous, and unshaded cells cannot form a 2×2 area. Each clue determines the number of shaded
cells that are diagonally connected to the clue (including itself). |
|
Describes a “battlefield” constraint: the first and last number in the region represent the sizes of two armies, who
march inward; the clue specifies the sum of the digits that are sandwiched between the armies or that are within the
armies’ overlap. This constraint implies a uniqueness constraint. |
|
Describes a “between line” constraint: every digit within the BetweenLineConstraint.InnerCells must lie numerically
between the values in cells BetweenLineConstraint.Cap1 and BetweenLineConstraint.Cap2 (exclusive). |
| Describes a Binairo (Binary Puzzle, Tohu-wa-Vohu) puzzle. |
|
Represents a Castle Wall puzzle, in which the solver must draw a single continuous non-intersecting loop in such a
way that certain predefined squares are either inside or outside a loop. |
| Describes a strategy for deciding in which order to consider cells in a puzzle for trial and error. |
|
Describes a constraint where two regions of the grid must be identical (“clones”). |
|
Describes a constraint in which a specified set of cells must have one of a specified set of exact value combinations. |
|
Creates a Puzzle that consists of two puzzles to be solved simultaneously. |
|
Describes a “Renban cage”: the numbers within the region must be unique and form a set of consecutive integers
(though not necessarily in order). |
|
Abstract base class for all constraints in a puzzle. |
|
Return this from a call to Constraint.Process(SolverState) to indicate that this constraint should
be replaced with a given set of other constraints (which can be empty to remove this constraint). |
| Base class for classes describing the result of a call to Constraint.Process(SolverState). |
|
Return this from a call to Constraint.Process(SolverState) to indicate that the constraint is
already violated. |
|
Describes a constraint that mandates that the specified values must form a contiguous
(orthogonally connected) area. |
|
Describes the function signature required for a LambdaConstraint. See Constraint.Process(SolverState) for parameter and return value documentation. |
|
Represents an orthogonal direction in a 2D puzzle. |
|
Describes a constraint in a number-placement puzzle (such as Sudoku) where several regions must have the same sum,
but the sum is not given. |
| Contains an algorithm for solving Fillomino puzzles. This solver is independent of Puzzle. |
|
Describes a constraint in a number-placement puzzle that indicates that whatever value the specified FindTheValueConstraint.Cell contains, the cell that many steps away must contain FindTheValueConstraint.Value. |
|
Constrains five cells to values that satisfy a lambda expression. |
|
Constrains four cells to values that satisfy a lambda expression. |
|
Describes a Frame-Sum Sudoku, which is surrounded by numbers. Every number indicates the sum of the first few
cells visible from that location. Between minLength and maxLength cells may be included in that sum. |
| Describes a given in a puzzle (a value already pre-filled at the start). |
| Describes a Heyawake puzzle. |
|
Describes a constraint in a number-placement puzzle that requires a cell’s value to indicate the position of
another value within a specified run of cells. |
|
Describes a constraint in which a specific region of cells must sum up to the value in another cell. In a variant
Sudoku, this is often represented as an arrow coming out of a circle, and hence, the variant is known as “Arrow
Sudoku”. |
|
Provides a way to visualize progress during the puzzle solving process, e.g. by showing which cells are under
consideration, which possibilities are still to be examined, etc. |
|
Exposes information about the puzzle solver state while invoking methods on an implementation of IProgressVisualizer. |
| Describes a Sudoku puzzle with irregular regions. |
| Encapsulates a 9×9 Sudoku puzzle with Killer cages (sum + uniqueness constraints). |
|
Describes a constraint that will solve a Kyudoku puzzle given a 6×6 grid of numbers 1–9. The solution will contain
a 0 for marked cells and a 1 for struck-out cells. |
| Can be used to describe any constraint that applies to the whole puzzle using a lambda expression. |
| Describes a standard 9×9 Sudoku puzzle. |
|
Describes a constraint in a number-placement puzzle (such as a Thermometer Sudoku) where a series of cells must be
in ascending order. |
| Represents a Masyu puzzle, also known as Pearl. |
|
Constrains a set of values to occur a specified maximum number of times within a specified region. |
| Describes a constraint in which a region of cells must not sum up to more than a specified maximum value. |
|
Describes a constraint in which the sum of values in a specific region must have a specified minimum or maximum. |
| Describes a constraint in which a region of cells must sum up to a specified minimum value or more. |
|
Describes a constraint that prevents a specified set of values from forming a 2×2 area within a
2D grid. |
|
Represents a constraint in a number-placement puzzle that prohibits any of the values from
appearing adjacent to one another. |
|
Describes a constraint in a number-placement grid puzzle where no adjacent cells can have numerically consecutive
values. |
| Contains methods to deal with Nonogram puzzles. |
|
Describes a constraint in a number-placement grid puzzle where the values in orthogonally adjacent cells (NOT
including diagonals) cannot have the same remainder modulo a fixed quotient. |
| Represents a Numberlink puzzle. |
| Describes a constraint in which a group of cells can be only all evens or all odds. |
| Describes the specific flavor of an OddEvenConstraint. |
|
Describes a constraint where two regions of the grid must be identical (“clones”) except that one is plus or minus
a consistent offset from the other. |
| Constrains a single cell to values that satisfy a lambda expression. |
| Describes a composite constraint in which one of a set of constraints must be met. |
|
Describes a constraint that mandates that there must be an equal number of odd and even values in a row. This is a
subset of the rules of Binairo. |
|
Describes a constraint in a number-placement puzzle that mandates that the parity (odd/evenness) of the values
cannot form triplets in a row/column. |
|
Describes a constraint in a number-placement puzzle that mandates that the parities (odd/evenness) of the values
must form different patterns in every row and column. |
|
Contains some constants and values to help interpret cell values in path-genre puzzles (e.g., Masyu). |
|
Represents a constraint in a path puzzle such as Masyu, Numberlink or Yajilin that mandates that lines must join up into a path (the path cannot have a dangling end within the
grid). The values 0–6 are used to represent pieces of a path (see Path for constants to help deal
with these values). Paths can still exit the grid at the edge, or join up with a value greater than 6. |
| Describes a CombinationsConstraint that also implies a UniquenessConstraint. |
|
Describes a constraint in which a specific region of cells must have a specified product (multiplication). |
|
Provides a default implementation for IProgressVisualizer which displays, on the console, one row of
information for each cell currently under consideration, up to a specified recursion depth, highlighting for each
cell the values under consideration, thus giving a somewhat informative idea of the amount of progress made in the
puzzle. |
|
Describes a puzzle. |
| Contains extension methods for code related to PuzzleSolvers. |
|
Describes a Sudoku variant in which numbers written outside the grid describe the sum of the digits in that
row/column that are sandwiched between two specific values (usually 1 and 9). |
|
Describes a “sandwich” constraint: the numbers sandwiched between two specific numbers must sum up to a specified
total. This constraint implies a uniqueness constraint. The two specified numbers can be in any order. |
|
Describes a “sandwich wraparound” constraint: the numbers that follow a specific number and precede a specific
other number, wrapping around the grid if necessary, must sum up to a specified total. This constraint implies a
uniqueness constraint. |
|
Represents a constraint in a path puzzle such as Masyu that mandates that the path must form a
single connected loop. |
|
Constrains six cells to values that satisfy a lambda expression. |
| Represents a Skyscraper puzzle. |
|
Describes a “skyscraper” constraint: the numbers in the grid represent the height of a skyscraper; taller
skyscrapers obscure the view of smaller ones behind them; and the clue specifies how many skyscrapers are visible
from the direction of the clue. This constraint implies a uniqueness constraint. |
| Provides functions to solve Slitherlink puzzles. This solver does not use Puzzle. |
|
Use this to instruct the puzzle solver (Puzzle.Solve(SolverInstructions)) to perform certain types
of analysis for the debugging of constraint implementations. |
|
Encapsulates information given to Constraint implementations (in a call to Constraint.Process(SolverState)) during the puzzle solving algorithm. |
| Describes a standard 9×9 Sudoku puzzle. |
|
Describes a constraint in a number-placement puzzle where either one of several regions must have a specified sum. |
|
Describes a constraint in which a region of cells must sum up to a specified value. |
|
Describes a constraint in which a specific region of cells must have a specified value as either its sum or its
product. |
|
Describes a “killer cage”: the numbers within the region must be unique and sum up to a specified total. |
| Constrains three cells to values that satisfy a lambda expression. |
| Constrains two cells to values that satisfy a lambda expression. |
| Describes a constraint that mandates that a region of cells must have different values. |
|
Describes an “X-sum” constraint: the first X numbers must sum up to a specified total, where X is the first of
those digits. This constraint implies a uniqueness constraint. |
| Represents a Yajilin puzzle. |
|
Describes a Yin-Yang puzzle, a type of puzzle where every cell is filled either black or white. |