PySuSo
PySuSo is a library for solving Sudoku puzzels with Python.
What does PySuSo provide
PySuSo provides a brute force backtracking solver for Sudoku puzzels. In addition to the solver a board representing the Sudoku puzzel is provided.
Installation
PySuSo is available on PyPi as pysuso. To install with pip run:
Quick start
Create a board using one of the provided methods on the Board class. See the documentation for an overview off all
the methods.
board = Board.from_list(
[
0, 5, 0, 7, 0, 3, 0, 6, 0,
0, 0, 7, 0, 0, 0, 8, 0, 0,
0, 0, 0, 8, 1, 6, 0, 0, 0,
0, 0, 0, 0, 3, 0, 0, 0, 0,
0, 0, 5, 0, 0, 0, 1, 0, 0,
7, 3, 0, 0, 4, 0, 0, 8, 6,
9, 0, 6, 0, 0, 0, 2, 0, 4,
8, 4, 0, 5, 7, 2, 0, 9, 3,
0, 0, 0, 4, 0, 9, 0, 0, 0
]
)
Create a solver providing the board:
Call the solve method to search for a valid solution:
Full example including imports:
from pysuso.boards import Board
from pysuso.solvers import BasicSolver
board = Board.from_list(
[
0, 5, 0, 7, 0, 3, 0, 6, 0,
0, 0, 7, 0, 0, 0, 8, 0, 0,
0, 0, 0, 8, 1, 6, 0, 0, 0,
0, 0, 0, 0, 3, 0, 0, 0, 0,
0, 0, 5, 0, 0, 0, 1, 0, 0,
7, 3, 0, 0, 4, 0, 0, 8, 6,
9, 0, 6, 0, 0, 0, 2, 0, 4,
8, 4, 0, 5, 7, 2, 0, 9, 3,
0, 0, 0, 4, 0, 9, 0, 0, 0
]
)
solver = BasicSolver(board)
solution = solver.solve()
print(solution)
Documentation
Full documentation is available at PySuSo Documentation.
Additional remarks
The tests for the solver are based on Sudokus found in the Sudoku Exchange Puzzle Bank.