Legend

Class
Struct
Enum
Interface
Delegate
Constructor
Method
Property
Event
Field

Namespace: PuzzleSolvers

Assembly: PuzzleSolvers
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. (see also remarks)
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. (see also remarks)
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”). (see also remarks)
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. (see also remarks)
Describes a “Renban cage”: the numbers within the region must be unique and form a set of consecutive integers (though not necessarily in order). (see also remarks)
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. (see also remarks)
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. (see also remarks)
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. (see also remarks)
Constrains four cells to values that satisfy a lambda expression. (see also remarks)
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. (see also remarks)
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. (see also remarks)
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. (see also remarks)
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. (see also remarks)
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. (see also remarks)
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. (see also remarks)
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. (see also remarks)
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. (see also remarks)
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. (see also remarks)
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. (see also remarks)
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. (see also remarks)
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. (see also remarks)
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. (see also remarks)
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. (see also remarks)
Represents a Yajilin puzzle.
Describes a Yin-Yang puzzle, a type of puzzle where every cell is filled either black or white. (see also remarks)