sudoku-pro
v1.0.15
Published
Sudoku generator, solver, and CLI tool. Works in terminal and frontend apps with a clean library-first design.
Maintainers
Readme
sudoku-pro — Sudoku Generator, Solver & CLI (Node + Frontend)
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)
🔗 Live Demo (Frontend)
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
Install
npm install sudoku-proDifficulty Levels
| Code | Level |
|------|------------|
| e | Easy |
| m | Medium |
| h | Hard |
| v | Very Hard |
CLI (Terminal) Usage
Run via npx
npx sudoku-pro e
npx sudoku-pro m
npx sudoku-pro h
npx sudoku-pro vCLI Controls
When the puzzle prints:
- h → apply a hint (fills one correct empty cell)
- c → print the complete solution and exit
Node.js Usage (CommonJS)
const {
generateSudoku,
printSudoku,
solveSudoku,
getHint,
waitForHint
} = require("sudoku-pro");
const { sudoku, solvedSudoku } = generateSudoku("m");
printSudoku(sudoku);
waitForHint(sudoku, solvedSudoku);Solve an Existing Puzzle
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);Frontend Usage (Browser)
Important
You cannot import npm packages directly in plain HTML (file://).
You must use a bundler such as:
- Vite (recommended)
- Webpack
- Parcel
Frontend Quick Start (Vite)
npm create vite@latest sudoku-demo -- --template vanilla
cd sudoku-demo
npm install
npm install sudoku-pro
npm run devFrontend Example
import { generateSudoku, getHint } from "sudoku-pro";
const { sudoku, solvedSudoku } = generateSudoku("m");
const hint = getHint(sudoku, solvedSudoku);
console.log(hint);API Reference
generateSudoku(difficulty)
Returns:
{ sudoku, solvedSudoku }sudoku uses 0 for empty cells.
solveSudoku(grid)
Solves the puzzle in place.
getHint(sudoku, solvedSudoku, opts?)
Returns:
{ row, col, value }waitForHint(sudoku, solvedSudoku)
Terminal-only interactive mode.
License
MIT © Ashish Vashisht
