Interactive Sudoku Solver (ISS)

To set a value, select a cell and type a number.

To add a line or region constraint, select and drag; or shift-click.

To add other outside clue constraints, select a row or column arrow outside the grid.

For more information, see the help page.

OR (Source)
OR

LOADING...
Auto-solve

Stats by runtime

Constraints

Set multiple values

Lines & Sets

Select cells by dragging or shift-clicking.

Shape

Global constraints

Layout constraints

Custom JavaScript constraints

Create constraints between pairs of cells by providing a custom JavaScript function.

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 an 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.

Tip: You can use console.log to debug your state machine.

Name:
Unified input
// The initial state(s). Each state 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) { }

Outside clues

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

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.
Dim constraint display