Fetch Sudoku puzzles and store them as JSON in the workspace; render images on demand; reveal solutions later.
Install
Documentation
Sudoku
Overview
Fetch, render, and reveal Sudoku puzzles. Use sudoku.py to get new puzzles from sudokuonline.io, generate printable PDFs or images, and reveal solutions.
For details on the saved JSON format, see [DATA_FORMAT.md](references/DATA_FORMAT.md).
Available Puzzle Types
* kids4n: Kids 4x4
* kids4l: Kids 4x4 with Letters
* kids6: Kids 6x6
* kids6l: Kids 6x6 with Letters
* easy9: Classic 9x9 (Easy)
* medium9: Classic 9x9 (Medium)
* hard9: Classic 9x9 (Hard)
* evil9: Classic 9x9 (Evil)
Setup / Requirements
- -Binaries:
python3 - -Python libs:
python3 -m pip install requests Pillow lzstring
Get a Puzzle
Fetches a new puzzle and stores it as JSON. Output is JSON by default (use --text for human-readable output).
./scripts/sudoku.py get easy9
Get a Kids 6x6 puzzle:
./scripts/sudoku.py get kids6
Render Puzzle
Render a puzzle as an image or PDF.
Render latest puzzle as A4 PDF (for printing):./scripts/sudoku.py render --pdf
Render latest puzzle as clean PNG (for viewing):
./scripts/sudoku.py render
Render a specific previous puzzle by short ID:
./scripts/sudoku.py render --id a09f3680
Reveal Solution
Reveal the solution for the latest or specific puzzle. Use --id <short_id> (e.g., a09f3680) to target a specific puzzle.
./scripts/sudoku.py reveal --pdf
Reveal full solution for a specific ID:
./scripts/sudoku.py reveal --id a09f3680 --image
Reveal full solution as PNG image:
./scripts/sudoku.py reveal
Reveal a single cell (row 3, column 7):
./scripts/sudoku.py reveal --cell 3 7
Reveal a specific 3x3 box (index 5):
./scripts/sudoku.py reveal --box 5
Share Link
Generate a share link for a stored puzzle. Targets the latest puzzle by default; use --id <short_id> for a specific one.
./scripts/sudoku.py share
Generate link for specific ID:
./scripts/sudoku.py share --id a09f3680
Generate an SCL share link:
./scripts/sudoku.py share --type scl
Telegram Formatting Tip:
Format links as a short button-style link and hide the full URL: [Easy Classic \[<id>\]](<url>).
Launch an agent with Sudoku on Termo.