Sudoku
A simple Sudoku generator and solver. 数独生成器和解题器
This is a Sudoku game written in python, default to use Wave Function Collapse method. The project is written primarily in Python, distributed under the MIT License license, first published in 2019. Key topics include: sudoku, sudoku-checker, sudoku-generator, sudoku-solution-finder, sudoku-solver.
A Sudoku generator and solver
This is a Sudoku game written in python, default to use Wave Function Collapse method.
Install
shellpip install sudokum
Generation
A sudoku can be generated with a mask_rate. A full solution is generated when passing mask_rate=0.
pythonimport 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 animating Wave Function Collapse in sudoku generation.
pythonimport sudokum sudokum.display_wfc()

Or you can get you hand on it by running following code.
pythonimport sudokum sudokum.display_wfc(human=True)

Solving
By using sudokum.solve() function, it tries to solve the puzzle.
pythonimport 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 (default to 10) can set as following:
pythonimport sudokum s = sudokum.solve(g, max_try=3)
Manually check solution
If you have your own solution, you can validate it by following function:
pythonimport sudokum ok, position_of_problems = sudokum.check(g)
More Example
More use cases can be found in my test files.
Contributors
Showing top 1 contributor by commit count.
