Summary
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.
Constructors
|
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. |
Instance methods
Static methods
int | |
Converts a convenient coordinate notation into a puzzle-grid index. |
IEnumerable<int> | |
Converts a convenient coordinate notation into puzzle-grid indices. |
Instance properties
int[] | | The group of cells affected by this constraint, or null if it affects all of them. |
bool | |
Determines whether a path is allowed to “hit” a non-path cell (as in Numberlink) or whether the
path must navigate around all non-path cells (as in Yajilin). |
bool | |
By default, a constraint is only evaluated once for every digit placed in the grid, but not when another
constraint merely rules out a possibility. Derived types can override this and return true to indicate
to the solver that the constraint should be reevaluated (meaning: have Constraint.Process(SolverState) called on it
again) when another constraint rules out a value in one of the affected cells of this constraint. |
int | | Specifies the height of the puzzle grid. |
int? | |
Indicates an approximate number of possible combinations of digits this constraint can still accommodate. This
will help the solver prioritize cells when multiple cells have the same number of combinations individually. |
int | | Specifies the width of the puzzle grid. |