Giter VIP home page Giter VIP logo

wordlecompetition's Introduction

Wordle AI Competition

In this repository you can find everything you need to hold Wordle AI competitions. Implement and test your own AIs to find the optimal wordle strategy!

Leaderboard

Nr AI Author Points per round Success rate
1 OutcomeBasedAI da Finnci 3.816 100.0%
2 EntropyAI Akshaylive 4.091 100.0%
3 RubzipAI rubzip 4.569 97.2%
4 LetterPopularityAI example 4.653 93.6%
5 BruugleAI Bruugle 6.120 97.0%
6 MonkeyAI example 10.000 0.0%

The leaderboard shows how AIs contained in this repository perform against offical wordles, using the first 1000 words found here.

You can submit your own implementation by creating a pull request or sending it to me directly. The leaderboard will be updated accordingly.

AIs should use the word list provided in the constructor call and must not use the solution list directly. It is allowed (and encouraged) to use a common words list to mimic inherint human knowledge. See WordleJudge for details.

How to implement your own AI

Inherit from the abstract WordleAI class and implement its guess() method. You can find detailed documentation about this interface in the WordleAI class itself.

See the Monkey AI and LetterPopularityAI classes for example implementations. Feel free to reuse any code in your own implementations, for example the remaining_options() method.

Run the test competition

  • Run Competition.py.
  • By default, the same configuration is run that is used for the Leaderboard. All AIs found in ai_implementations will compete for 1000 wordles. Hard mode is not enforced.
  • You can pass True for the print_details argument in the Competition.fight() calls in the main method if you want to see guesses and scoring by round.

Community

Feel free to hop onto our Discord to discuss strategy, ask for help or boast about your AI's playing strength!

Wordle rules

  • In each round of wordle you try to guess a random 5-letter word
  • Words only contain letters a-z and are lower case.
  • You have 6 guesses
  • After each guess you will receive information about which letters of your guess were correct

AI Competition rules

  • The goal is to collect as few points as possible. A round gives points equal the number of guesses or 10 points if the word was not found within the 6 guesses.
  • The winner of a competition is the competitor with the least amount of points over all rounds combined.

InteractivePlayer.py

Executing this file allows playing the game in the browser with AI support. Simply relay the ingame information to the AI via console input.

Word lists

The word list of the official wordle game consists of 12972 words: combined_wordlist.txt
Around 2500 of them are used as the daily wordles: shuffled_real_wordles.txt

In this repository is also a list of 5-letter English words ordered by usage frequency common_words.txt that was extracted from a wictionary.org list of 100k common words.

Also a list with words that are difficult for AIs to solve can be found under difficult_words.txt for testing purposes.

WordleJudge.py

Analysis has shown that the daily wordles are significantly more frequently used words than the average allowed-guess word. This is something human players automatically adjust for - they are more likely to guess 'water' than 'pekoe' (a specific tea).

The WordleJudge class takes into account how common words are in the English language. Use an instance of this class and call is_wordle_probability(word) to factor word usage frequency into your decision-making.

Hard Mode rules

This is an optional setting in the official game.

  • Standard rules apply
  • Guesses must follow already known information. Revealed letters have to be part of the guess, if possible at the right position.

wordlecompetition's People

Contributors

kinkelin avatar pulpdood avatar akshaylive avatar bruugle avatar rubzip avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.