I actually think the OP and the comments are too focused on the programmer-related aspects of this. I'll add a few things. 1. It's not trivial but it's not that hard if you have a decent vocabulary and some intuitive sense for word frequencies (and word pair frequencies) for different locations in a word. The answer list does not seem to include really hard words as naively picking all the words in the MW dictionary…
I like this part. I’m in a 5-person group text where we’re posting our scores every day. Sometimes I’m the first, oftentimes not. When I happen to see a couple of others’ results in the thread, I’ll start to think about what they would have guessed with whatever pattern they posted. Like if I see ⬛ ⬛ ⬛ _ ⬛ , and I’m struggling between guessing "CHART" or "CHANT", I’ll go with CHANT because I assume they went with CHART first.