Skip to content

Introduction ​

TSudoku is a TypeScript port of SudokuExplainer -- the gold-standard Sudoku technique classifier. It identifies named solving techniques, explains why moves are valid, and rates puzzle difficulty -- all in TypeScript with zero JVM dependency.

PROJECT STATUS

The engine covers Phases 1 and 2 (SE 1.0–4.4) with 100% agreement against SudokuExplainer on a 1858-puzzle corpus. Packages are not yet published to npm -- build from source. The web game is deployed privately while the teaching features take shape.

Why TSudoku? ​

The JS/TS ecosystem has plenty of backtracking solvers. What it lacks is a solver that reasons the way humans do. TSudoku fills that gap -- and uses it to build a game that teaches techniques rather than just applying them.

Roadmap ​

PhaseDescriptionStatus
0Monorepo scaffolding, CI, docsComplete
1Direct techniques (SE 1.0–2.5)Complete -- 100% SE parity
2Candidate techniques (SE 2.6–4.4)Complete -- 100% SE parity
--SE reference integration (Java CLI oracle)Complete -- the benchmark's truth
--Generator + corpus pipelineComplete -- 1858 rated puzzles
--Web game (notes, hints, difficulty bands)Working -- private deployment
--Tutor: step-by-step technique lessonsIn progress -- next up
3Uniqueness techniques (SE 4.5–6.0)Not started
4Chain techniques (SE 6.2+, server-side)Deferred
--React Native appPlanned, after the web app
--ML packageParked

The live, detailed plan is STATUS.md in the repository.

Packages ​

PackageDescriptionStatus
@tsudoku/coreBoard model, candidates, technique detectors, solverWorking
@tsudoku/gameFramework-free game state, notes, history, tutorWorking
@tsudoku/solverBrute force, uniqueness, solution stringsWorking
@tsudoku/generatorPuzzle generation + difficulty ratingWorking
@tsudoku/cliCommand-line interfaceScaffold
@tsudoku/react-nativeReact Native components + hooksScaffold