Bucknell University Lewisburg, PA
Instructor: Prof. King Semester: Fall 2023
Team Name: Wordle Group #2
Allen Walker: Sophomor Computer Science Engineering Major, the Product Owner
Berty Levi: Junior, the Maintainer
Titus Weng: Sophomore CSEG major, the Scrum Master
This project is a recreation of the hit game world with extra functionality. It started with very high
ambitions that have slowly been trimmed down as a result of time constraints. The original project
was meant to print out the definition of the words after the game was over as well as allow
flexibility in the number of guesses allowed. Most significant among these was the abandonment of a
JavaFX interface, so now the program in run through the console. That said many key features remained
In the game Wordle the user is prompted with 5 spaces in which to type a word. After they submit it
they are told which letter were in the exact right spot and which are in the word but in the wrong place
they repeat this process until they are able to narrow it down and guess the correct word or lose.
Our program expands on this idea by containing not just a five letter game-mode but includes a four
letter and six letter options as well. On top of this We provided the algorithmic based solver that
can play the game as well.
For each game-mode two word lists are provided. One containing all accepted guesses and a more curated
list of possible answers. This is a feature implemented in Wordle as well in order to prevent problematic
issues such as user be required to guess the word "aargh". Unfortunately we did have time to trim down the
word list for six letters.
There are three algorithmic solver provided in this program, RandomSolver, BetterSolver, and OptimalSolver.
All three are capable of solving all game-modes and have on core feature in common. After receiving a
response from the game they can remove every possible wrong answer narrowing the list down. This allows
even RandomSolver to function fairly well. Here is how they all work with some data showing performance:
Random Solver: Guesses a random word from the guess list and then removes all incorrect possibilities.
Data:
Wordle was played 10000 times
The answer was correctly found 88.97% of the time
When it was solved:
The Mean was: 4.57
The Median was: 5.0
The Standard Deviation was: 1.0686
Better Solver: The first attempt a Solver better than random guessWork. It performed nearly identically.
Details for its function or provided in its own description.
Data:
Wordle was played 10000 times
The answer was correctly found 88.9499% of the time
When it was solved:
The Mean was: 4.56
The Median was: 5.0
The Standard Deviation was: 1.0243
Optimal Solver: The second attempt at a Solver better than random GuessWork. It was a success.
Optimal Solver cheats slightly by being aware of the difference between the Answer List and Guess List
but this is not where its improved performance comes from. It compares every possible guess to every possible
answer and picks the best guess on average (details provided in Optimal Solvers file). This come at a cost
Optimal Solver is significantly slower than the other taking ~15 second per Solve. In order to combat this
the first guess is hard-coded since it would always be the same anyway. Multi-threading would have been a
better solution, but it was not figured out in time. It is still noticeably slower.
Data:
Wordle was played 10000 times
The answer was correctly found 98.7299% of the time
When it was solved:
The Mean was: 3.83
The Median was: 4.0
The Standard Deviation was: 0.9202
Video Presentation: https://mediaspace.bucknell.edu/media/Final%20Project%20Presentation/1_ldqp4pm7
Sources and Inspiration for Solvers:
OptimalSolver: https://www.youtube.com/watch?v=v68zYyaEmEA
BetterSolver: https://www.youtube.com/watch?v=yuGUa-krYDA&t=266s
https://github.com/cherdt/fourxfour/blob/master/sorted4.dictionary
https://github.com/Morgenstern2573/wordle_clone/blob/master/build/words.js
https://github.com/CameronDeweerd/Wordle-VI/blob/main/answer_list.txt
https://github.com/jpkhawam/WordleFX/tree/master
https://www.freecodecamp.org/news/build-a-wordle-clone-in-javascript/