Live data from Hacker News

Adversarial Wordle

qntm.org

21–30 of 72 posts

Re: Adversarial Wordle

#21

This is great! A few days ago, I wrote a Wordle solver in C. It selects a word to minimize the number of words assuming the worst-case green/yellow. So, it sounds like these two are in direct conflict. My solver is deterministic, and it looks like the adversarial is too, so they always play the same game: S E R A I (0 green, 0 yellow, 429 words remain) M O L D Y (1 green, 0 yellow, 35 words remain) C E N T U (0 greem…

I'd love to see your code! My strategy[0] (not-yet-automated) doesn't aim to minimize in the worst case, but rather to minimize the expected size of the set of possible words.

[0] https://blog.scubbo.org/posts/cheating-at-word-games/

Re: Adversarial Wordle

#22
post #8

Somehow, I always get a large tropical seabird... S T E R N (0 green, 0 yellow) P L A I D (0 green, 0 yellow) M U C K Y (1 green, 0 yellow) G O R G E (1 green, 0 yellow) W O O F Y (3 green, 0 yellow) B O O Z Y (4 green, 0 yellow) B O O B Y (5 green, 0 yellow) You guessed successfully in 7 guesses! S T E R N (0 green, 0 yellow) P L A I D (0 green, 0 yellow) B O U G H (2 green, 0 yellow) W O O Z Y (3 green, 0 yellow) B…

After 14 failed quesses and only two letters revealed, I read your comment and guessed BOOBY, which left only one letter missing -- the correct answer was BOOZY.

Re: Adversarial Wordle

#23

Earlier quoted context omitted.

Mastermind? :-)

I think similar to wordle, but the defender can change the word being guessed at will as long as they don't invalidate any previous response.

Yes, this is it. I came up with the idea while trying to figure out whether any challenge is solvable in four guesses.

Re: Adversarial Wordle

#24
post #8

Somehow, I always get a large tropical seabird... S T E R N (0 green, 0 yellow) P L A I D (0 green, 0 yellow) M U C K Y (1 green, 0 yellow) G O R G E (1 green, 0 yellow) W O O F Y (3 green, 0 yellow) B O O Z Y (4 green, 0 yellow) B O O B Y (5 green, 0 yellow) You guessed successfully in 7 guesses! S T E R N (0 green, 0 yellow) P L A I D (0 green, 0 yellow) B O U G H (2 green, 0 yellow) W O O Z Y (3 green, 0 yellow) B…

After 14 failed quesses and only two letters revealed, I read your comment and guessed BOOBY, which left only one letter missing -- the correct answer was BOOZY.

Had you tried BOOZY, then BOOBY would have been the correct answer. It's dynamically filtering the list of available words and trying to prolong the game as long as legally possible.

Re: Adversarial Wordle

#25

This is great! A few days ago, I wrote a Wordle solver in C. It selects a word to minimize the number of words assuming the worst-case green/yellow. So, it sounds like these two are in direct conflict. My solver is deterministic, and it looks like the adversarial is too, so they always play the same game: S E R A I (0 green, 0 yellow, 429 words remain) M O L D Y (1 green, 0 yellow, 35 words remain) C E N T U (0 greem…

Are you using the same dictionary? I used the same technique, and got:

  NARES
  DOILY
  TOUCH
And then VOUCH / COUCH / POUCH / GOUCH / MOUCH.

Re: Adversarial Wordle

#26
With a greedy solver (minimize word pool for the next step), I got ARISE (168) -> BLUDY (13) -> COMET (2) -> NAVAL (1) -> CHUNK.

I think five steps is as good as it gets, as 5*5 is about the size of the alphabet.

Edit: I stand corrected. YEARN (216) -> FLOUT (12) -> CHAMP (1) -> HUMPH.

Re: Adversarial Wordle

#28
post #21

This is great! A few days ago, I wrote a Wordle solver in C. It selects a word to minimize the number of words assuming the worst-case green/yellow. So, it sounds like these two are in direct conflict. My solver is deterministic, and it looks like the adversarial is too, so they always play the same game: S E R A I (0 green, 0 yellow, 429 words remain) M O L D Y (1 green, 0 yellow, 35 words remain) C E N T U (0 greem…

I'd love to see your code! My strategy[0] (not-yet-automated) doesn't aim to minimize in the worst case, but rather to minimize the expected size of the set of possible words. [0] https://blog.scubbo.org/posts/cheating-at-word-games/

Wow! I really like your analysis!

Yeah, I was trying to determine the utility function that would determine how to select words, but I'm more of a gut-feel, intuitive sort of person. I also tried a squared term like yours, but for some reason, it didn't feel right when I tested it. That version decided the best initial word was `LARES`. I have a sneaky suspicion that we need to account for how common a word was. I think my solver was getting to hung up worrying about BRAXY and CRURA, and giving them similar weight to a word like TRACK.

However, it was very hard to debug because a slightly buggy version was still decent at playing the game! In fact, I'm fairly certain I still have some bugs. I need to comment my code and get it up on Github. It's also super brute force O(n^2)

Re: Adversarial Wordle

#30
I struggled with this to start, because if you begin with words that have vowels AEIOU then the real word will have only Y's in it. Like SHYLY, which I just got. So start off with a word with a Y and you'll avoid that fate :)
Post reply on HN