* Wordle 218: https://i.imgur.com/PbYfLm6.jpg * Wordle 221: https://i.imgur.com/pTPbquL.jpg
But I hope the game is increasing people's literacy... They should make a version for SAT words.
Kudos! I have been so curious lately as to whether this was possible.
EDIT: The next question is which (if any) of these signals can be removed and still get it in 1 guess. Or if there are any other signals. Or how many tweets are needed (is 50 enough? 10? or 1000? 10k?)
The simulated distributions it's comparing to are based on 1000 runs per 5-letter word.
Anecdotally, 250 was enough to get it working for those simulated distributions, 100 and below it became increasingly noisier. A higher N would be nice, but I didn't spend more time optimizing the performance for the simulation code beyond what was needed to get this working.
evaluate_guess(answer="crest", guess="erase")
"MYNYM"
Many people misunderstand this but it's not how the rules actually work. Correct here would be MYNYN, because there is only one E in the correct answer. There must be a 1-1 correspondence between any 'M' letter in the guess and the letter in the answer. This is similar to the rules for the game "Mastermind".It should allow capturing a significant fraction of the 250k daily wordle tweets.
(Edit: drat, HN filters out the Unicode colored-block characters).
I usually have a first guess like SAINT then something like SCARE, CORED, etc eliminating vowels and frequent constants while also considering the most likely sequencing of matched characters or remaining characters.
Also eliminating S, T, C really reveals there’s no TH, SH, SP, CK, etc and is one factor that gets me suspicious of repeated chars or rarer k, g and x combos.
JSON.parse(localStorage.gameState).solutionJust so cool someone put this together, major props.
One minor improvement here; if the user has toggled colorblind mode on, then their tweeted result will also have altered color blocks. Orange for right letter right place, and blue for right letter wrong place.
I did something similar last week using the Twitter Stream API: https://github.com/basile-henry/twitter-wordle
It's not resistant to adversarial tweets, but it usually collects enough tweets to have an answer in around 1 minute, so it's not too bad to restart if some bad tweets were sampled.
Maybe I should try to use your wordle-tweets dataset to make it work offline as well. :)
If I may make two small suggestions as a user, I noticed you have a dictionary with nearly 13k words which often results in invalid suggestions like 'clery' and 'meryl'. In testing I found the Scrabble dictionary to be much more likely to yield valid Wordle words (found here: https://github.com/redbo/scrabble), though the official Wordle answers tend to be an even smaller set of ~2,500 common words.
Second, though the implementation is very clean in code (much more concise than mine!), I found the use of the green/gray/yellow methods to be a bit cumbersome when adding constraints. You could wrap these three in a method like guess(word, reply) where your response encodes the feedback as something like [g]=green, [b]=black, [y]=yellow:
Given: [('arose', 27122), ('aeros', 27122), ('seria', 27095), ('riesa', 27095)]
>>> w.guess('arose', 'bybby')
vs.
>>> w.gray('aos') >>> w.yellow('r', 2) >>> w.yellow('e', 5)
You could even have the guess method trigger a new round of suggestions since the response implies that we've advanced a turn.
People are having fun solving puzzles in clever ways. This post is an exceptionally clever way of solving a puzzle in an unexpected way, using forensic data analysis, which is itself something of interest to a lot of us.
In the age of intrusive anti-cheat software and byzantine security measures, the fact that Wordle doesn't attempt to prevent cheating is something I find weirdly charming.
Enter a 5 letter word and it'll tell you the next the it will be the wordle solution.
Might be good to add it to the original post for clarification. I play Wordle but didn't quite get what they were using for source data.
What HN does and doesn't allow seems somewhat arbitrary, things like the star emoji are in that same block and yet are not allowed as far as I can tell.
Not true. For example if the correct answer is TWEED and you guess TWEET, then you’ll get YYYYM.
Edit: As pointed out by two commenters, the actual implementation contradicts the following claim in the post:
> “Maybe” - the letter is in the answer but in a different position
If the correct answer is TWEED and you gess TWEET, you will still get YYYYN, because the actual implementation uses a different definition of “Maybe” than what is written in the post.
No, this would give YYYYN
Another commenter points out the actual implementation may deviate from this definition though.
/s
each day there is a 5 letter word. You have a limited number of guesses as to what word it is (iirc 6 guesses). When you make a guess, it marks each letter with something indicating whether the actual word had that letter in that position, whether that word has a copy of that letter (and not one you already found), or whether that letter does not appear in that word.
All of your guesses have to be words.
In hard mode, all of your guesses have to contain all of the letters which you got right in a previous guess.
At the end (if you get the word within 6 guesses?) you are given an option to share (on twitter mostly, I think) a representation of your game, in a way that doesn't reveal what words you guessed or what the final word was, just which positions had which of the 3 markings, which, in this share feature, are represented using emoji with the colored square blocks.
This results in many people posting grids of colored square blocks, followed some fraction out of 6.
Seriously, the quickest way to understand it is to just play the thing.
Only every day for the last two months
https://hn.algolia.com/?dateRange=pastYear&page=0&prefix=fal...
But I hate that any guesses have to be words in its dictionary.
As someone who was never really a fan of crosswords, the need to find a real word that fits 5 letters every time severely limits how I can enjoy it.
Here is an implementation from the great Simon Tatham's Portable Puzzle Collection:
https://www.chiark.greenend.org.uk/~sgtatham/puzzles/js/gues...