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()
Or you can get you hand on it by running following code.
import sudokum
sudokum.display_wfc(human=True)
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)
| File | Size | Uploaded | |
|---|---|---|---|
| sudokum-0.0.1.tar.gz | 8.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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
|