An interactive word search game in Python with level system, seed-based random generation, and progress saving.
- ๐ Multilingual: French, English, Spanish with translated interface and words
- ๐ Complete Dictionaries: Words pulled from real dictionaries (thousands of words per language)
- ๐ Automatic Download: Dictionaries are downloaded and cached on first launch
- ๐ฒ Random Generation: Grids generated with a seed system for reproducibility
- ๐ 5 Difficulty Levels: From beginner to expert with increasing grids (8ร8 to 16ร16)
- โฑ๏ธ Dynamic Timer: Time adapted to each level (3 to 8 minutes)
- ๐พ Auto-save: Resume your game at any time
- ๐ฏ Scoring System: Time bonus to reward speed
- ๐ Replayability: Replay any grid with its seed
- ๐จ Graphical Interface (Tkinter): Modern interface with click-and-drag system
- ๐ฑ๏ธ Intuitive Selection: Find words by clicking and dragging on the grid
- โ Visual Validation: Found words are highlighted in green
- โ๏ธ Customizable Settings: Change language at any time
- ๐ Online Multiplayer: Play with friends in Duel or Coop mode (requires websockets)
- Python 3.7 or higher
- No external dependencies for single-player (uses only standard library)
- For multiplayer mode:
websocketslibrary (install withpip install websockets)
- Clone the repository:
git clone https://github.com/Inkflow59/PyWordExplorer.git
cd PyWordExplorer- Launch the game:
python main.pyNote: On first launch, the game will automatically download word dictionaries from GitHub (about 1-2 MB per language). These dictionaries will be cached in the dict_cache/ folder for later offline use.
The game is available in 3 languages with complete dictionaries:
- ๐ซ๐ท Franรงais: Over 324,000 French dictionary words
- ๐ฌ๐ง English: Over 270,000 English dictionary words
- ๐ช๐ธ Espaรฑol: Over 635,000 Spanish dictionary words
Words are randomly selected from real dictionaries for infinite variety!
Change language at any time via Game โ Settings!
The graphical interface offers an intuitive experience with:
- Interactive Grid: Click and drag to select words
- Word List: On the right side of the screen, found words are crossed out
- Real-time Timer: Display of remaining time with color coding
- Dynamic Score: Updated in real-time
- Translated Interface: All menus and messages in your language
- New Game: Choose a level from 1 to 5
- Continue: Resume your last saved game (if available)
- Load: Select a specific save from the list
- Replay with Seed: Enter a seed to replay an exact grid
- Click on the first letter of a word
- Hold and drag to the last letter
- Release to validate the selection
If the word is correct:
- โ Cells turn green
- โ The word is crossed out in the list
- โ Your score increases
Use the menu bar at the top to:
- Save your game at any time
- Return to main menu
- Access help and information
Find all hidden words in the grid before the timer runs out!
Words can be placed:
- Horizontally (โ)
- Vertically (โ)
- Diagonally (โ โ) - From level 2
- Backwards - From level 4
๐ก Tip: Words can be selected in both directions!
PyWordExplorer now supports online multiplayer! Play with friends in two exciting modes:
- ๐ Duel Mode: Compete against other players - first to find a word wins the points!
- ๐ค Coop Mode: Work together to find all words - share the victory!
-
Install the websockets library:
pip install websockets
-
Launch the server (one player hosts):
python server.py
-
Launch the game (all players):
python main.py
-
Connect: Click "๐ Online Multiplayer" in the main menu
-
Play: Create or join a game, select a difficulty level, and start playing!
- Local play: Use
localhost:8765 - LAN play: Use server's local IP (e.g.,
192.168.1.100:8765) - Internet play: Use server's public IP with port forwarding
For detailed multiplayer instructions, see MULTIPLAYER.md.
| Level | Size | Words | Time | Difficulty |
|---|---|---|---|---|
| 1 - Beginner | 8ร8 | 5 | 3 min | Horizontal, Vertical |
| 2 - Easy | 10ร10 | 7 | 4 min | Horizontal, Vertical |
| 3 - Medium | 12ร12 | 9 | 5 min | + Diagonals |
| 4 - Hard | 14ร14 | 11 | 6 min | + Reversed words |
| 5 - Expert | 16ร16 | 14 | 8 min | + Reversed words |
PyWordExplorer/
โโโ main.py # Main entry point
โโโ config.json # Configuration (selected language)
โโโ requirements.txt # Dependencies (none external!)
โโโ src/
โ โโโ __init__.py
โ โโโ gui.py # Multilingual Tkinter GUI
โ โโโ language.py # Translation system (FR/EN/ES)
โ โโโ word_generator.py # Dynamic generator from dictionaries
โ โโโ grid_generator.py # Grid generation with seed
โ โโโ game_logic.py # Game logic and level system
โ โโโ save_manager.py # Save management (JSON)
โ โโโ word_lists.py # [Legacy] French word lists
โโโ dict_cache/ # Downloaded dictionaries cache
โ โโโ fr_words.txt # ~324K French words
โ โโโ en_words.txt # ~270K English words
โ โโโ es_words.txt # ~635K Spanish words
โโโ saves/ # Save folder (created automatically)
โโโ README.md
On first startup, the game automatically downloads dictionaries from GitHub:
โณ Downloading dictionary fr...
โ Dictionary fr downloaded (324290 words)
โณ Downloading dictionary en...
โ Dictionary en downloaded (270528 words)
โณ Downloading dictionary es...
โ Dictionary es downloaded (635005 words)
Dictionaries are then cached locally for offline use.
If you enjoyed a particular grid, note its seed (displayed at the top of the screen) and use the "Replay with seed" option to regenerate it exactly.
Share your seed with friends so they can play the same grid as you!
Level 3 | Seed: 123456
Score is calculated as follows:
- 100 points per word found
- Time bonus: 2 points per remaining second
Example: 9 words found with 45 seconds remaining = 900 + 90 = 990 points
Edit src/word_lists.py to add your own words or create new categories:
FRENCH_WORDS = [
"YOUR", "NEW", "WORD",
# ... add your words here
]In src/game_logic.py, modify the LEVELS list:
LEVELS = [
Level(1, size, nb_words, time, diagonals, reversed),
# ...
]Saves are stored in JSON format in the saves/ folder:
{
"timestamp": "2025-10-31T12:00:00",
"version": "1.0",
"game_state": {
"level": 3,
"seed": 123456,
"found_words": ["CHAT", "CHIEN"],
"remaining_time": 180.5
}
}Contributions are welcome! Feel free to:
- Report bugs
- Suggest new features
- Add word lists
- Improve documentation
This project is under MIT license. See the LICENSE file for more details.
Modern interface with clear buttons to start a new game, continue, load, or replay with a seed.
- Interactive Grid with clickable cells
- Word List on the right side
- Timer and score in real-time
- Seed display for replayability
- Blue: Selection in progress
- Green: Word found and validated
- White: Unused letters
- Graphical interface (Tkinter) โ
- Multilingual support (FR/EN/ES) โ
- Dynamic word generator โ
- Online multiplayer mode โ
- Animations when discovering words
- Sound effects
- Detailed statistics (progress charts)
- Selectable word themes in the interface
- Visual hint system (with penalty)
- Arcade mode (limited time per word)
- Online leaderboard with daily seed
- More languages (German, Italian, Portuguese, etc.)
- Customizable color themes
- Integrated dictionary for word definitions
Inkflow59 - GitHub
Thank you for choosing PyWordExplorer! Have fun! ๐
Created with โค๏ธ in Python