sudoku-pro is a lightweight JavaScript library (plus optional CLI) to generate, solve, and play Sudoku puzzles with built-in difficulty levels.
✅ Works in Node.js (CommonJS)
✅ Works in Frontend apps (ES Modules via bundlers like Vite/Webpack)
✅ Includes a CLI for terminal play (hint + complete solution)
You can try the full frontend demo here:
👉 https://sudoku-pro.duckdns.org/
This demo uses:
sudoku-proas an npm dependency- Vite for bundling
- Docker + Nginx
- HTTPS via Let’s Encrypt
npm install sudoku-pro| Code | Level |
|---|---|
e |
Easy |
m |
Medium |
h |
Hard |
v |
Very Hard |
npx sudoku-pro e
npx sudoku-pro m
npx sudoku-pro h
npx sudoku-pro vWhen the puzzle prints:
- h → apply a hint (fills one correct empty cell)
- c → print the complete solution and exit
const {
generateSudoku,
printSudoku,
solveSudoku,
getHint,
waitForHint
} = require("sudoku-pro");
const { sudoku, solvedSudoku } = generateSudoku("m");
printSudoku(sudoku);
waitForHint(sudoku, solvedSudoku);const { solveSudoku } = require("sudoku-pro");
const grid = [
[0,0,0,0,4,0,0,0,1],
[0,0,0,7,0,0,4,6,2],
[1,4,6,0,0,3,0,7,0],
[0,2,0,3,0,4,0,0,7],
[0,9,0,0,0,8,6,1,0],
[0,6,0,0,5,0,3,0,0],
[0,0,0,8,0,7,2,4,3],
[0,8,7,0,0,0,0,5,0],
[4,1,2,0,3,6,0,0,0]
];
solveSudoku(grid);
console.log(grid);You cannot import npm packages directly in plain HTML (file://).
You must use a bundler such as:
- Vite (recommended)
- Webpack
- Parcel
npm create vite@latest sudoku-demo -- --template vanilla
cd sudoku-demo
npm install
npm install sudoku-pro
npm run devimport { generateSudoku, getHint } from "sudoku-pro";
const { sudoku, solvedSudoku } = generateSudoku("m");
const hint = getHint(sudoku, solvedSudoku);
console.log(hint);Returns:
{ sudoku, solvedSudoku }sudoku uses 0 for empty cells.
Solves the puzzle in place.
Returns:
{ row, col, value }Terminal-only interactive mode.
MIT © Ashish Vashisht