A reverse-engineering tool that turns your Wordle grid into a canvas. Tell it the colors you want, and it finds the exact words you need to type. Features an interactive CLI wizard and a smart flexible solver.
Project description
🎨 Paint on Wordle
Make Wordle look exactly how you want!
Paint on Wordle is a powerful solver tool that allows you to reverse-engineer the game. Instead of guessing words to find a solution, you provide the colors (pattern) and the solution word, and the tool tells you exactly which words you need to type to create that pattern on the grid.
Perfect for creating specific shapes/pixel art on your Wordle grid or solving tricky scenarios.
Features
- 🧙 Interactive Wizard: A step-by-step graphical terminal interface to build your grid visually.
- ⚡ Instant Solution Mode: Get immediate results by providing arguments directly in the command line.
- 🧠 Flexible Matching: Smart algorithm that prioritizes exact matches but can swap Yellow/Green colors to find the closest possible word for your pattern.
- 🔍 Exhaustive Search: Ability to list all valid candidates for a pattern, not just the best one.
Installation
Install the package directly from PyPI:
pip install paint-on-wordle
Usage
Once installed, you can run the tool using the command paint-wordle.
1. Interactive Wizard (Default)
Run without any arguments to start the interactive mode. The tool will guide you through setting the target word and painting the grid row by row.
paint-wordle
Controls:
- Arrows / WASD: Move cursor between tiles.
- Space: Toggle tile color (⬛ Gray -> 🟨 Yellow -> 🟩 Green).
- Enter: Confirm current row pattern and find matching words.
- Esc: Exit the program.
2. Instant Solution Mode
Use command-line arguments to skip the wizard and get immediate answers. This is useful for scripting or quick lookups.
Required Arguments:
--word/-w: The hidden target word (the solution) relative to which patterns are calculated.--pattern/-p: One or more color patterns to match (e.g.,20010).
Pattern Legend:
0= Gray (Miss)1= Yellow (Wrong Spot)2= Green (Exact Match)
Advanced Options:
-
--flexible/-f(Smart Matching) By default, the solver is strict. If you use this flag, it treats Green and Yellow as interchangeable hits while strictly enforcing Gray spots.Logic: It searches for an exact match first. If none exists, it finds the closest match by performing the minimum number of color swaps necessary.
-
--find-all/-aLists all valid candidates found for each pattern instead of showing only the single best word.
Examples
Basic Exact Match: Find a word that generates "Green, Gray, Gray, Gray, Gray" when the solution is "apple":
paint-wordle --word apple --pattern 20000
Multiple Patterns: Check three different rows at once:
paint-wordle -w apple -p 20000 00100 22222
Using Flexible Mode: You want a specific pattern, but you don't care if some Yellows become Greens (or vice versa), as long as the Grays stay Gray:
paint-wordle -w apple -p 21001 --flexible
List All Candidates: Show every single word that fits the pattern, not just the first one found:
paint-wordle -w apple -p 00000 --find-all
Development
If you want to contribute or run the code from source:
-
Clone the repository:
git clone https://github.com/KMChris/paint-on-wordle.git cd paint-on-wordle -
Install dependencies:
pip install -r requirements.txt -
Run via module:
python -m src.main
Project Structure
src/main.py: Entry point. Handles argument parsing and mode selection.src/cli.py: Handles the interactive wizard interface and user input.src/solution.py: Core logic, pattern calculation, and word filtering algorithms.src/data/words.txt: The dictionary of valid 5-letter words.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file paint_on_wordle-1.0.0.tar.gz.
File metadata
- Download URL: paint_on_wordle-1.0.0.tar.gz
- Upload date:
- Size: 47.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f9742b511e5bee77b0a3f0e558b97efa33a35355f96b001dd9cd3f3f3f1e9c9c
|
|
| MD5 |
82a93116fed1cb1754b8edfd5be90b86
|
|
| BLAKE2b-256 |
db72014ce16289030ed4a035eb5299521d4b7ddb746eefcb80a89ae95b53bd16
|
File details
Details for the file paint_on_wordle-1.0.0-py3-none-any.whl.
File metadata
- Download URL: paint_on_wordle-1.0.0-py3-none-any.whl
- Upload date:
- Size: 47.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
88f4b886810c9e51a909dad2c24f395956d7ddfbca92f0e0068a7d2e52015275
|
|
| MD5 |
b6238dd5966230730abc3008c9afdcce
|
|
| BLAKE2b-256 |
99d20a4ced9519fb20a98301e0999ded88f2b7eafcde65936ed1116e716b83ff
|