Legend

Class
Struct
Enum
Interface
Delegate
Constructor
Method
Property
Event
Field

Class: PuzzleSolvers.Exotic.SkyscraperSumUniquenessConstraint

Summary

Describes a “skyscraper sum” 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 the sum of the sizes of the skyscrapers visible from the direction of the clue. This constraint implies a uniqueness constraint.

Remarks

Warning: This constraint is very memory-intensive. It is implemented as a CombinationsConstraint with all of the possible number combinations for the specified set of cells. Avoid using this on oversized puzzles. (At time of writing, this is only feasible for up to 11 cells, which uses about 2 GB of RAM for each constraint.)

Constructors

SkyscraperSumUniquenessConstraint(int clue, IEnumerable<int> affectedCells, int minValue = 1, int maxValue = 9)
Constructor.

Static methods

int
CalculateSkyscraperSumClue(IEnumerable<int> values)
Calculates what the Skyscraper clue would be for a given row of numbers.
int
TranslateCoordinate(string str, int gridWidth = 9)
Converts a convenient coordinate notation into a puzzle-grid index.
IEnumerable<int>
TranslateCoordinates(string str, int gridWidth = 9)
Converts a convenient coordinate notation into puzzle-grid indices.

Instance methods

ConstraintResultOverride; see base.
stringOverride.

Instance properties

int[]The group of cells affected by this constraint, or null if it affects all of them.
boolOverride; see base.
intThe number of skyscrapers visible.
int?[][]The set of combinations allowed for the specified set of cells.
int?Override; see base.