BOOM 2024 - Wordle Solver
About
Wordle is a popular word puzzle game where the player has six guesses to guess a five-letter word, with feedback after each guess. My project (GitHub Link) uses the Java Swing library to create a desktop application for Wordle. I also used Python to query the Datamuse API to get word frequencies to construct priors on the possible words. The algorithm for solving is written in Java with both a simple and complex version, with the simple version resulting in real-time results on a laptop while still being competitive with state-of-the-art algorithms (average of roughly 3.5 guesses per game).
Demo
My solver, from the repository linked above, can be easily started in a desktop Java environment by following the instructions. To play a game of Wordle (no solving!) in the web, check out the New York Times.
Motivation
Existing wordle solvers (and even mostly game players) have limited configurability. In particular, the number of guesses, length of the word/guesses, and the alphabet set are all fixed. Although these are not detremental to optimizing performance on the New York Times version of the game, the usual lack of ability to tune the possible/allowed words and priors (probability of being selected as the correct word) does affect predictive ability. In particular, the New York Times is known to use a specific set of allowed words and a subset of those words which can possible be the correct answer. In addition, they avoid very uncommon words. Therefore, a prior that looks like the frequency of words in the English language is reasonable and enables my solver to perform comparably with state-of-the-art solvers while requiring almost no computational resources.