/wordle_solver

A Python Wordle solver that utilizes information theory for intelligent word prediction

Primary LanguagePythonOtherNOASSERTION

Wordle Solver using Information Theory

Wordle Solver logo

Chat Chat

Overview

This project is a Wordle solver that leverages principles from information theory to efficiently guess the hidden word in the Wordle game. Built using Python and scipy, this solver aims to enhance the player's Wordle experience by providing the statistically best words based on the player's guesses. The solver utilizes a non-comprehensive Spanish dictionary to generate word suggestions.

Special Thanks to David Azorin for designing the logo!

Installation

  1. Clone the repository:

    git clone https://github.com/your-username/wordle-solver.git
  2. Navigate to the project directory:

    cd wordle-solver
  3. Install Poetry (if not already installed):

    curl -sSL https://install.python-poetry.org | python3 -
  4. Install the project dependencies using Poetry:

    poetry install
  5. Run the solver:

    poetry run python main.py

Usage

  1. Launch the program running main.py

  2. Enter the words you have tried using the virtual keyboard

  3. Click on the screen buttons to select which pattern you obtained in the wordle game so far

  4. Click on compute entropies to compute the best words based on the words and patterns entered

  5. Click on show entropies to see the best words to guess based on the entropy score of every word

  6. Press reset button to try new words and patterns

To-Do List

  • Integrate physical keyboard
  • Add multiprocessing to speed up initial computation
  • Improve light mode appearance
  • Write comprehensive documentation
  • Build web version
  • Add file dialog to change the word dictionary to allow different languages
  • Improve appearance of light mode

License

This project is licensed under the CC BY-NC 4.0 License. See the LICENSE file for more information.

Contributing

Contributions are welcome! If you'd like to enhance the Wordle solver or fix any issues, please follow these steps:

  1. Fork the repository.

  2. Create a new branch for your feature/fix:

    git checkout -b feature/your-feature
  3. The commits adhere to the Conventional Commits convention. Make the necessary changes and commit them:

    git commit -m 'feat: add your feature description'
  4. Push your changes to the forked repository:

    git push origin feature/your-feature
  5. Open a pull request to the main repository's main branch.