Basic Usage

Speed solver

The SpeedSolver class provides a fast and efficient algorithm for solving Sudoku puzzles. Here's an example of how to use it:

import { SpeedSolver } from 'sudogame';
 
// Create a new 9x9 Sudoku puzzle
const puzzle = [
  [5, 3, 0, 0, 7, 0, 0, 0, 0],
  [6, 0, 0, 1, 9, 5, 0, 0, 0],
  [0, 9, 8, 0, 0, 0, 0, 6, 0],
  [8, 0, 0, 0, 6, 0, 0, 0, 3],
  [4, 0, 0, 8, 0, 3, 0, 0, 1],
  [7, 0, 0, 0, 2, 0, 0, 0, 6],
  [0, 6, 0, 0, 0, 0, 2, 8, 0],
  [0, 0, 0, 4, 1, 9, 0, 0, 5],
  [0, 0, 0, 0, 8, 0, 0, 7, 9],
];
 
// Solve the puzzle using the SpeedSolver
const solver = new SpeedSolver({ size: 3 });
const result = solver.solve(puzzle);
// {
//   question: [
//     [5, 3, 0, 0, 7, 0, 0, 0, 0],
//     [6, 0, 0, 1, 9, 5, 0, 0, 0],
//     [0, 9, 8, 0, 0, 0, 0, 6, 0],
//     [8, 0, 0, 0, 6, 0, 0, 0, 3],
//     [4, 0, 0, 8, 0, 3, 0, 0, 1],
//     [7, 0, 0, 0, 2, 0, 0, 0, 6],
//     [0, 6, 0, 0, 0, 0, 2, 8, 0],
//     [0, 0, 0, 4, 1, 9, 0, 0, 5],
//     [0, 0, 0, 0, 8, 0, 0, 7, 9],
//   ],
//   solution: [
//     [5, 3, 4, 6, 7, 8, 9, 1, 2 ],
//     [6, 7, 2, 1, 9, 5, 3, 4, 8 ],
//     [1, 9, 8, 3, 4, 2, 5, 6, 7 ],
//     [8, 5, 9, 7, 6, 1, 4, 2, 3 ],
//     [4, 2, 6, 8, 5, 3, 7, 9, 1 ],
//     [7, 1, 3, 9, 2, 4, 8, 5, 6 ],
//     [9, 6, 1, 5, 3, 7, 2, 8, 4 ],
//     [2, 8, 7, 4, 1, 9, 6, 3, 5 ],
//     [3, 4, 5, 2, 8, 6, 1, 7, 9 ]
//   ]
// }s

Lazy Solver

The LazySolver class is designed to find all possible solutions of the puzzle. Here's an example of how to use it:

import { LazySolver } from 'sudogame';
 
const puzzle = [
  [5, 3, 0, 0, 7, 0, 0, 0, 0],
  [6, 0, 0, 1, 9, 5, 0, 0, 0],
  [0, 9, 8, 0, 0, 0, 0, 6, 0],
  [8, 0, 0, 0, 6, 0, 0, 0, 3],
  [4, 0, 0, 8, 0, 3, 0, 0, 1],
  [7, 0, 0, 0, 2, 0, 0, 0, 6],
  [0, 6, 0, 0, 0, 0, 2, 8, 0],
  [0, 0, 0, 4, 1, 9, 0, 0, 5],
  [0, 0, 0, 0, 8, 0, 0, 7, 9],
];
 
const solver = new LazySolver({ size: 3, clues: puzzle });
const resultGenerator = solver.generator;
for (const result of resultGenerator) {
  console.log(result);
}

Generator

The Generator class provides a way to generate new Sudoku puzzles. Here's an example of how to use it:

import { Generator } from 'sudogame';
 
// Generate a new 9x9 Sudoku puzzle
const generator = new Generator(3);
console.log(generator.make());

License

sudogame is licensed under the MIT License. See the LICENSE file for more information.