Skip to content

concurdev/sudoku-pro

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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-pro as an npm dependency
  • Vite for bundling
  • Docker + Nginx
  • HTTPS via Let’s Encrypt

Install

npm install sudoku-pro

Difficulty 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 v

CLI 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 dev

Frontend 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

About

sudoku-pro is a JavaScript package that provides functionalities to generate, solve, and print Sudoku puzzles of varying difficulty levels using the backtracking algorithm. It offers an easy-to-use interface to create and solve Sudoku puzzles for both recreational and educational purposes.

Topics

Resources

License

Stars

0 stars

Watchers

1 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors