Skip to content
/ wordle Public

A wordle simulator and an experiment in active learning

License

Notifications You must be signed in to change notification settings

dfm/wordle

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

A wordle simulator

A simulator for experimenting with different strategies for solving the daily Wordle puzzle.

Strategies

There are 2 strategies implemented here: (1) Baseline a baseline that randomly guesses valid words, and (2) Active as algorithm that maximizes the expected information gain at each step.

Simulating the performance of these algorithms for all words in the Wordle dictionary gives the following results:

The performance of our strategies

where the orange histogram shows the distribution of guesses required when the solver doesn't know that the correct Wordle is a "common" word. The green distribution shows our results when we cheat and provide our algorithm with the known word list from the Wordle source code.

Usage

Simulation mode

To simulate the performance for a specific puzzle, run:

cargo run -- -s array

where array can be replaced by any valid 5-letter word. This will report results like:

tares: 12971 -> 80
monad: 80 -> 13
fugly: 13 -> 2
'array' in 4 guesses

This interface includes other command line arguments like --hard to run in "hard mode" and --common to let the algorithm know that the true word is a "common" word as defined by Wordle.

To run this simulation across the entire dictionary, run:

cargo run --bin simulate

This will print a comma-separated list or results to standard out, with the form:

cigar,4
rebut,3
sissy,4
humph,4
...

where the number is the number of guesses that were required to solve the puzzle.

Solve mode

You can also use this code to solve today's puzzle. The simplest way to do this is by using the command line interface:

cargo run

which will suggest guesses and ask for you to enter the results from the website by hand.

There is also a built-in solver that can interact with the website directly using thirtyfour. To do this, you'll need to run a Chrome WebDriver process using something like chromedriver:

chromedriver --url-base=/wd/hub --port=4444

Then run

cargo run --bin solve

which should show you something like the following:

An example solve

This interface also takes command line arguments like --hard to solve in "hard mode":

cargo run --bin solve -- --hard

About

A wordle simulator and an experiment in active learning

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages