Absurdle is an adversarial variant of the charming and (currently) viral word guessing game Wordle.
The mechanics of Absurdle are identical to Wordle, or as close as I can make them. Among other things, they use very similar word lists. (There are actually two word lists in Wordle: one is a list of 2,315 words which can appear as answers, and the other is a list of 10,657 rather more obscure words which are allowed as guesses but will never appear as answers.) The major difference is behind the scenes.
Wordle picks a single secret word at the beginning of the game, and then you have to guess it. Absurdle gives the impression of picking a single secret word, but instead what it actually does is consider the entire list of all possible secret words which conform to your guesses so far. Each time you guess, Absurdle prunes its internal list as little as possible, attempting to intentionally prolong the game as much as possible.
The easiest way to explain this is with a worked example.
Suppose your first guess is "TERNS".
Absurdle considers every word in its list of 2,315 possible secret words and figures out what its response would be in each case.
If the secret word was... | ...then Absurdle's response to "TERNS" would be... |
---|---|
"CIGAR" | β¬β¬π¨β¬β¬ |
"REBUT" | π¨π©π¨β¬β¬ |
"SISSY" | β¬β¬β¬β¬π¨ |
"HUMPH" | β¬β¬β¬β¬β¬ |
... | ... |
"TERNS" | π©π©π©π©π© |
This has the effect of separating all of the 2,315 possible secret words up into different buckets depending on the possible response. In this case, there are 110 of these buckets:
If Absurdle's response to "TERNS" was... | ...then the secret word would have to be one of... | Number of secret words in this bucket |
---|---|---|
β¬β¬π¨β¬β¬ | "CIGAR", "DWARF", "MAJOR", ... | 136 |
π¨π©π¨β¬β¬ | "REBUT", "REACT", "RETCH", ... | 12 |
β¬β¬β¬β¬π¨ | "SISSY", "BLUSH", "BASIC", ... | 119 |
β¬β¬β¬β¬β¬ | "HUMPH", "FOCAL", "CLUCK", ... | 256 |
... | ... | ... |
π©π©π©π©π© | "TERNS" | 1 |
The smallest bucket is of course the π©π©π©π©π© bucket, which has a single word in it, "TERNS". If Absurdle were feeling nice then it could simply announce, "Success! The word was 'TERNS'! You won in a single guess!" But Absurdle instead does the opposite, and selects the largest bucket, which is β¬β¬β¬β¬β¬ and has 256 words in it. It prunes its internal list of possibilities from all 2,315 words down to just those 256 words, tells you "No, none of those letters appear in my secret word", and waits for your next guess.
Let's say your next guess is "APHID". All new letters, of course.
Absurdle does the same thing again.
If the secret word was... | ...then Absurdle's response "APHID" would be... |
---|---|
"HUMPH" | β¬π¨π¨β¬β¬ |
"FOCAL" | π¨β¬β¬β¬β¬ |
"CLUCK" | β¬β¬β¬β¬β¬ |
"MIMIC" | β¬β¬β¬π©β¬ |
... | ... |
"APHID" | π©π©π©π©π© |
Notice how "TERNS" isn't one of the possibilities, as it was discarded last turn. This time, there are only 44 buckets:
If Absurdle's response to "APHID" was... | ...then the secret word would have to be one of... | Number of secret words in this bucket |
---|---|---|
β¬π¨π¨β¬β¬ | "HUMPH", "WHOOP", "GLYPH", ... | 7 |
π¨β¬β¬β¬β¬ | "FOCAL", "OFFAL", "GAMMA", ... | 38 |
β¬β¬β¬β¬β¬ | "CLUCK", "BOOBY", "BOOZY", ... | 36 |
β¬β¬β¬π©β¬ | "MIMIC", "CIVIC", "VIGIL", ... | 8 |
... | ... | ... |
π©π©π©π©π© | "APHID" | 1 |
The largest bucket is π¨β¬β¬β¬β¬, with 38 words in it. So Absurdle returns π¨β¬β¬β¬β¬ and the game continues.
Let's try "QUACK".
If the secret word was... | ...then Absurdle's response to "QUACK" would be... |
---|---|
"FOCAL" | β¬β¬π¨π¨β¬ |
"OFFAL" | β¬β¬π¨β¬β¬ |
"GAMMA" | β¬β¬π¨β¬β¬ |
... | ... |
"QUACK" | π©π©π©π©π© |
This leaves just 14 buckets:
If Absurdle's response to "QUACK" was... | ...then the secret word would have to be one of... | Number of secret words in this bucket |
---|---|---|
β¬β¬π¨π¨β¬ | "FOCAL", "COMMA", "CACAO", ... | 9 |
β¬β¬π¨β¬β¬ | "OFFAL", "GAMMA", "BAGGY", ... | 11 |
β¬π¨π¨π¨π© | "CAULK" | 1 |
... | ... | ... |
π©π©π©π©π© | "QUACK" | 1 |
Absurdle selects "β¬β¬π¨β¬β¬" and the number of possibilities drops to just 11 words.
This process continues until you manage to chase Absurdle into a corner, where there can only be one possible word which fits all the available evidence. At this point all the behind-the-scenes shenanigans stop, and the game proceeds exactly as it does in Wordle, until such time as you correctly guess the full word. Of course, by this point, you, the player, also have enough information to uniquely identify the word in question, so this is nearly always the last turn of the game.
Wordle is capped at 6 turns, which is generally plenty for a casual player. Some good strategies include picking a good starter word with a good combination of different common letters, applying plenty of logic to the clues returned by the game, and having a broad vocabulary of words to use for follow-up guesses.
Absurdle has no turn cap, because a casual game can easily last for over a dozen turns. The Absurdle AI is highly evasive and it takes real effort to force the game to give up useful information and back it into a corner. A common occurrence in the Absurdle endgame is to nail down all but one or two letters of "the" secret and then be forced to systematically chase Absurdle through all of the remaining possibilities, one at a time. This is called a "corridor":
Because the Absurdle algorithm is completely deterministic, it will always respond the same way to the same inputs. The game relies on the player to supply some randomness in the form of their initial guesses. Make the same guesses, and you'll play the same game.
As for non-casual play... raw word power is critical, as is tactical play — intentionally testing previously untested letters in known (green) locations to gain more information faster, for example. But an extremely popular tactic is to write a computer program to play the game for you. The Absurdle algorithm is an open book — just hit "View source" — and completely deterministic, making it eminently attackable and almost certainly fully solvable. The shortest known games of Absurdle are 4 turns long, for example:
It is believed that 4 turns is optimal; it isn't possible to force a win in only 3 turns.
However, I will leave discussion of techniques for attacking Wordle/Absurdle to other people.
This isn't really anything new.
Absurdle's spin on Wordle is spiritually very similar to an earlier game/prank of mine, HATETRIS, which is an adversarial variant on Tetris. In both cases I took a game which at a surface level is single-player, with a passive CPU opponent behaving mostly randomly, and turned it into an asymmetric, adversarial game, replacing the CPU opponent with an enemy AI which is actively playing to win.
Additionally, Wordle has a great deal in common with the classic game Hangman, which already is an asymmetric two-player game. The adversarial strategy Absurdle uses is extremely obvious to Hangman players and has probably been known for as long as the game of Hangman has existed. Here's a good video on this topic:
Wordle is also extremely similar to the game Mastermind, which also supports this adversarial strategy: try Galaxybrain, by CHz.
About two weeks in, I have the game pretty much where I want it to be.
I will not be aiming for feature parity with Wordle. For example, don't expect neat CSS animations, a daily challenge mode or persistent statistics. I will consider further bug reports and feature requests on a case-by-case basis. I reserve the right to modify the word lists.
It is true that nastier algorithms than Absurdle's are possible. By choosing the largest bucket after every turn, Absurdle does not necessarily force the game to run for the maximum number of turns. A smaller bucket can sometimes contain a more diverse collection of possible secret words, which would force the player to spend more turns guessing.
However, in the general case, this optimal (or from a player's perspective, pessimal) min-max approach appears to be completely impractical for Absurdle because of the sheer number of possibilities. With more than 10,000 possible words to guess on each turn, the game balloons to more than a trillion possible different states after just three guesses.
It is possible that the total number of possible game states in Absurdle is, in fact, tractable. Counting the states seems to be pretty difficult, but it might actually turn out to be less than a trillion. Even if it is a trillion or more, the number might still be within practical reach of some kind of brute-force analysis. But even if that is the case, the real question is whether it's practical to cache enough early responses that Absurdle can compute the rest of its strategy on the client, in JavaScript. (I'm not adding a server-side component to this insanely popular game, thanks.) In any case this is an open question which I'm not planning to pursue myself.
I will also not modify the algorithm to behave non-deterministically (randomly) for the purposes of entertainment. This makes the game strictly easier, which isn't my objective. There's now a "random guess" button, which I hope fills that need.
Lastly, I will not be releasing the source code of Absurdle on GitHub.
Thank you for playing, and many thanks to Josh Wardle, creator of Wordle.
Discussion (77)
2022-01-10 00:47:41 by qntm:
2022-01-10 03:03:04 by Tim McCormack:
2022-01-10 04:53:39 by jrtom:
2022-01-10 05:39:01 by Kieros:
2022-01-11 14:39:42 by hmmatea:
2022-01-11 16:46:09 by Aegeus:
2022-01-11 23:38:07 by qntm:
2022-01-14 12:55:06 by EtaoinWu:
2022-01-14 17:57:05 by Kate:
2022-01-15 01:22:03 by cyrus:
2022-01-15 01:37:38 by Nick:
2022-01-15 01:52:34 by Br. Bill:
2022-01-15 04:07:52 by Aaron:
2022-01-15 04:51:49 by Allen K:
2022-01-15 09:41:10 by Dan Q:
2022-01-15 12:19:37 by SadisticMystic:
2022-01-15 20:34:43 by hmmatea:
2022-01-15 22:28:08 by Sp:
2022-01-15 22:38:41 by jet_silver:
2022-01-16 13:20:49 by Jymbob:
2022-01-16 13:22:50 by Jymbob:
2022-01-17 06:11:58 by Vaidhy:
2022-01-17 22:13:46 by House:
2022-01-18 11:58:25 by Samantha:
2022-01-18 12:03:27 by qntm:
2022-01-18 14:51:50 by wlm1954:
2022-01-18 20:53:26 by Atticus:
2022-01-21 22:34:32 by noodle:
2022-01-22 15:47:16 by Joel Shore:
2022-01-22 15:58:27 by qntm:
2022-01-24 03:12:36 by mule:
2022-01-24 04:31:19 by mule:
2022-01-24 05:45:16 by TeamDman:
2022-01-24 14:55:57 by Maxwell Pelic:
2022-01-24 16:41:18 by Maxwell Pelic:
2022-01-26 20:27:47 by Hunter E:
2022-01-27 05:52:24 by CAP:
2022-01-30 20:22:23 by aphysicist:
2022-01-30 20:25:25 by qntm:
2022-01-30 23:56:46 by aphysicist:
2022-01-31 06:34:58 by Teddy A.:
2022-01-31 22:47:46 by Graham Holt:
2022-02-02 10:24:50 by e_talpa:
2022-02-04 00:05:17 by aphysicist:
2022-02-04 00:11:40 by aphysicist:
2022-02-05 17:15:01 by Graham Holt:
2022-02-05 23:23:10 by Mark:
2022-02-07 00:49:49 by slabdrill:
2022-02-09 13:33:26 by aphysicist:
2022-02-10 20:55:27 by Griffeath:
2022-02-11 04:27:59 by Teddy A.:
2022-02-11 19:42:17 by Griffeath:
2022-02-11 22:43:32 by Bill:
2022-02-12 02:54:10 by CAP:
2022-02-12 16:22:48 by Teddy A.:
2022-02-12 17:32:08 by Griffeath:
2022-02-12 19:48:48 by Griffeath:
2022-02-12 21:23:29 by Griffeath:
2022-02-13 11:29:40 by CAP:
2022-02-14 23:05:44 by Griffeath:
2022-02-15 02:58:03 by Catherine:
2022-02-15 04:11:33 by Griffeath:
2022-02-15 08:01:35 by Catherine:
2022-02-16 06:26:12 by Carl:
2022-02-16 10:10:55 by CAP:
2022-02-16 20:03:50 by Carl:
2022-02-20 14:30:33 by The Sourcerer:
2022-02-20 15:14:11 by qntm:
2022-02-21 01:13:41 by The Sourceror:
2022-02-22 09:49:35 by CAP:
2022-02-24 16:53:03 by Griffeath:
2022-02-24 23:15:35 by Mike:
2022-02-25 06:40:11 by Griffin:
2022-02-28 16:21:52 by clrd4t0:
2022-03-02 22:56:05 by Griffeath:
2022-03-06 18:38:12 by _Zaphod77_:
2022-03-16 22:52:27 by yatima2975:
This discussion is closed.