Skip to main content

A Sudoku generator and solver

This is a Sudoku game written in python, default to use Wave Function Collapse method.

A puzzle can be generated by following function with a mask rate.

Install

pip install sudokum

Generation

A sudoku can be generated with a mask_rate. A full solution is generated when passing mask_rate=0.

import sudokum

g = sudokum.generate(mask_rate=0.7)
print(g)
"""
[[1 0 0 5 0 0 0 0 3]
 [0 3 7 0 0 1 0 0 4]
 [0 0 0 0 0 2 0 0 0]
 [0 0 0 0 9 4 0 0 0]
 [0 0 4 0 0 0 0 3 2]
 [0 0 0 3 2 5 0 0 0]
 [0 0 0 0 0 0 2 0 0]
 [7 4 0 0 0 0 0 0 0]
 [8 0 0 0 0 3 1 0 0]]
"""

To visualize the generating procedure, I have made a GUI for animate Wave Function Collapse in sudoku generation.

import sudokum
sudokum.display_wfc()

auto

Or you can get you hand on it by running following code.

import sudokum
sudokum.display_wfc(human=True)

human

Solving

By using solver() function, it tries to solve the puzzle.

import sudokum

g = sudokum.generate(mask_rate=0.7)
s = sudokum.solve(g)
print(s)
"""
[[1 2 8 5 4 7 6 9 3]
 [6 3 7 9 8 1 5 2 4]
 [4 9 5 6 3 2 7 1 8]
 [2 1 3 7 9 4 8 5 6]
 [5 7 4 1 6 8 9 3 2]
 [9 8 6 3 2 5 4 7 1]
 [3 5 1 4 7 6 2 8 9]
 [7 4 2 8 1 9 3 6 5]
 [8 6 9 2 5 3 1 4 7]]
"""

A solving max try number can set as following:

import sudokum

s = sudokum.solve(g, max_try=3)

Manually check solution

If you have your own solution, you can validate it by following function:

import sudokum

ok, position_of_problems = sudokum.check(g)

More Example

More use cases can be found in my test files.

Release files for sudokum 0.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for sudokum 0.0.1
File Size Uploaded
sudokum-0.0.1.tar.gz 8.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for sudokum 0.0.1
File Interpreter ABI Platform
sudokum-0.0.1-py3-none-any.whl Python 3 none any Details

Total release size: 20.8 kB

Release files / sudokum-0.0.1.tar.gz

Download URL sudokum-0.0.1.tar.gz
Size 8.9 kB
Tags Source
SHA-256 checksum
How to use checksums
7f0dddf63a1f96f480fb5b07dd4573fb9d44a3fab3f1385a1f1e5a3b84df9530
BLAKE2b-256 checksum
How to use checksums
cefc0ebab15245ccf0d695cf7bd7eda620348cba3391d401bb5c72f60a1f7c6b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.0 CPython/3.8.13

Release files / sudokum-0.0.1-py3-none-any.whl

Download URL sudokum-0.0.1-py3-none-any.whl
Size 11.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
82c6ec4db986521585084a69a4b1ee6fb601a17fa11eb45aeb5370e9dcb49dc4
BLAKE2b-256 checksum
How to use checksums
97f60be829800a5afcb79ffad35f981a3aed1884e750f7052d6c910f3cf7d643
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.0 CPython/3.8.13

Release history Release notifications | RSS feed

This release

0.0.1 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page