What isn’t mentioned in my code is that I assume we can replace words with their alphabetical positions in the list of words, but once we do that, the algorithm is one of the simplest. “The dumbest thing that could possibly work” is to use a binary search to guess the word, and repeat that process for every word.
The one problem I had when solving was convincing myself that the answer I was generating was correct. I was thrown off a little by the example in the question, with nine guesses. I had to convince myself that this was unusual by remembering that binary search is a log2 n approach.