Getting started
Getting Started
Install @reetesh/sudoku-engine, generate a classic puzzle, and wire variant engines in minutes.
Install
npm install @reetesh/sudoku-engineClassic puzzle in one screen
import {
generatePuzzle,
applyMove,
getCandidates,
revealNext,
isSolvedCorrectly,
solve,
} from "@reetesh/sudoku-engine";
const game = generatePuzzle("medium");
if (!game) {
// Rare: retries exhausted — retry or fall back to another difficulty
throw new Error("Could not generate puzzle");
}
// Never mutate game.puzzle in place if you need the givens board later
let board = game.puzzle.map((row) => [...row]);
const move = applyMove(board, 4, 4, 7, game.puzzle);
if (move.success) board = move.board;
else console.warn(move.reason); // given cell, bad digit, or house conflict
getCandidates(board, 4, 4); // legal digits for UI pencil marks
const hint = revealNext(board, game.solution, game.puzzle);
if (hint) board = hint.board;
isSolvedCorrectly(board, game.solution); // win check
solve(game.puzzle); // { solved: true, board: … }Variant in one screen
import { createEngine } from "@reetesh/sudoku-engine";
const engine = createEngine({ variant: "diagonal" });
const game = engine.generatePuzzle("easy");
if (!game) throw new Error("generation failed");
engine.validateBoard(game.puzzle); // true under Sudoku X rules
engine.solve(game.puzzle);