Skip to main content

Sudoku sovler written in Python

Project description

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:

pip install pysuso

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:

solver = BasicSolver(board)

Call the solve method to search for a valid solution:

solver.solve()

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pysuso-0.2.0.tar.gz (4.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pysuso-0.2.0-py3-none-any.whl (8.2 kB view details)

Uploaded Python 3

File details

Details for the file pysuso-0.2.0.tar.gz.

File metadata

  • Download URL: pysuso-0.2.0.tar.gz
  • Upload date:
  • Size: 4.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: pdm/2.13.2 CPython/3.10.12 Linux/6.5.0-1016-azure

File hashes

Hashes for pysuso-0.2.0.tar.gz
Algorithm Hash digest
SHA256 db93086246bedfdda90c95c1da1a9bd8c424b227e99e3e3e1a33848048064807
MD5 0fb40a1a5dab3eed918f5edb4f90483a
BLAKE2b-256 037c8a123a64ee50388b3f707d6bdea63efb5aa85721bd739abc4a59b7d6a3c8

See more details on using hashes here.

File details

Details for the file pysuso-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: pysuso-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 8.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: pdm/2.13.2 CPython/3.10.12 Linux/6.5.0-1016-azure

File hashes

Hashes for pysuso-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 3fa6621888b020bf72b60de7e30cfab1530624cc46ba6d5473a2e21448140db6
MD5 b38ec8276077c8f78c459769fad4713b
BLAKE2b-256 45b9b69130a9b0b935677434190791fb3948f34407a34b358ece5339b4ccdada

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page