0
LOADING...

Tip: Solver runs fastest on Chrome

Auto-solve
(Source)

Load constraint from text

Constraints

Multiple values

Lines & Sets

Select cells by dragging or shift-clicking.

Shape

×

Global constraints

Layout constraints

Outside clues

Select a row, column or diagonal arrow outside the grid.

Custom JavaScript constraints

Create constraints between pairs of cells by providing a custom JavaScript function. The help pages have extra details.

Name:
Chain handling :
// Return true if the cell values a and b are // a valid pair. // Example: a < b (thermometer constraint)
constraintCheck = (a, b) =>

Define a finite-state machine using JavaScript transition and accept functions. The constraint will be satisfied the state-machine reaches an accept state after processing the cells in order. The help pages have extra details.

Name:
// The initial state(s). States can be any // JSON-serializable value, except arrays. // Use an array for multiple start states.
startState = ;
// transition takes the current state and // cell value and returns the next state, or // an array of states. Returning undefined or // the empty array generates no next states.
function transition(state, value) { }
// accept returns true when the state is a // valid final state.
function accept(state) { }
// Max depth for state creation (optional).
maxDepth = ;

Composite constraints

Select a composite constraint by clicking on its chip to add constraints to it. Panels which allow constraints to be added to the composite will be highlighted in yellow.

Chaos Construction

These constraints only apply when ChaosConstruction is enabled. Select cells by dragging or shift-clicking.