JSON.parse(window.localStorage.gameState).solutionShow HN: Simple Wordle solver in command line in Python
11–16 of 16 posts
Re: Show HN: Simple Wordle solver in command line in Python
#12Is Aeros the entropy maximizing first guess?
No need to “entropy maximize”. There’s only ~12k-13k five letter English words in the dictionary. Check /usr/share/dict/words file (if you use Windows, go find a dictionary file elsewhere). The first word should be a word that roughly eliminates half the words, regardless of getting any letters right or wrong. Count the letters in each position and calculate & rank the words that closely eliminates 1/2 the whole list…
Binary search isn’t the right answer here. You should be able to do far better than splitting things in half.
The greedy approach to solve this would be fairly simple. Find the next choice of n and letter that maximizes information gain recursively until the space is solved.
But a globally optimal approach would be pretty hard. At a minimum each letter has three color states so that’s 5^3 (125) groups of words that will be outputted by your result. The ideal first word, assuming your goal is to minimize average guesses, would try to get these groups as even as possible.
The theoretical perfect first word would thus get 96 possibilities (12000/125) left after a single guess but that’s probably not possible due to the grouping of words.
However a truly globally optimal setup only needs to guarantee that each outcome state has no more than 125 possibilities remaining, all of which are uniquely identifiable with a follow up word.
Damn, this sounds like a fun MIP challenge.
Re: Show HN: Simple Wordle solver in command line in Python
#13Earlier quoted context omitted.
No need to “entropy maximize”. There’s only ~12k-13k five letter English words in the dictionary. Check /usr/share/dict/words file (if you use Windows, go find a dictionary file elsewhere). The first word should be a word that roughly eliminates half the words, regardless of getting any letters right or wrong. Count the letters in each position and calculate & rank the words that closely eliminates 1/2 the whole list…
You basically described entropy maximization. But not quite. Eliminating words is just a piece of it, and the goal varies. are you trying to minimize the average number of guesses? Maximize the probability of getting it within N guesses? Etc. Binary search isn’t the right answer here. You should be able to do far better than splitting things in half. The greedy approach to solve this would be fairly simple. Find the…
> minimize average number of guesses
Yes, and it’s def much better than binary search, but the algorithm to arrive at the solution is optimal in that way — minimize the depth of the tree given a set of words/letters, with each branch being “correct letter position”, “correct letter”, or eliminate letter. No need to use abstract coloring concepts either.
No real need for “ML” or anything.
If someone had the time, they can prebuilt all the decision trees and pick the optimal words to as the starting word.
Make a hangman solver was actually a take home interview question I had back in like 2009. Code it up, it’s a lot easier than it sounds.
Re: Show HN: Simple Wordle solver in command line in Python
#14it's much less algorithmically interesting, but you can also just run this in your browser console: JSON.parse(window.localStorage.gameState).solution
Re: Show HN: Simple Wordle solver in command line in Python
#15Earlier quoted context omitted.
You basically described entropy maximization. But not quite. Eliminating words is just a piece of it, and the goal varies. are you trying to minimize the average number of guesses? Maximize the probability of getting it within N guesses? Etc. Binary search isn’t the right answer here. You should be able to do far better than splitting things in half. The greedy approach to solve this would be fairly simple. Find the…
The goal in wordle or hangman is to guess the word within a set number of guesses. > minimize average number of guesses Yes, and it’s def much better than binary search, but the algorithm to arrive at the solution is optimal in that way — minimize the depth of the tree given a set of words/letters, with each branch being “correct letter position”, “correct letter”, or eliminate letter. No need to use abstract colorin…
Re: Show HN: Simple Wordle solver in command line in Python
#16Correction : I thought this was script to solve Wordle puzzles, so I provided a cheat helper below. At first blush, I thought the idea was for the human to feed this script information back from Wordle so it could improve its guesses. Sigh Also, you really need better names for your methods and variables, starting with this bit here: https://github.com/KevinXuxuxu/wordle_machine/blob/64a8534ad... As you think about a…
Thanks for the reply! I really appreciate your feedback on this. I wasn't giving much thought about coding style and naming etc. when I worked on this, just wanted to get it running asap. I'll definitely take a better look at your suggestion (I'm not very familiar with perl) and see if I find any time to improve this thing. cheers.
These exercises are great at improving your intuition and aptitude for refactoring code in a way that makes it more maintainable, easier to read and reason about.