Like Squaredle, but terrible
Terridle is a daily word puzzle — one word hidden in a grid of letters, inspired by Squaredle.
The story of Terridle...
This project came from a series of experiments with Python, rather than from setting out to create a game.
It began when I found a copy of the Scrabble dictionary as a text file and started playing around with ways to quickly check whether a string of characters is a valid word.
I had played Squaredle before, and that inspired me to make a grid of letters and work on a search algorithm, using my dictionary lookup to find valid words.
The first iteration of the project filled the grid completely at random and then checked every possible word by moving around the grid in all possible directions.
I was surprised at how fast it could do this, and I immediately thought of a practical use for the code: if I let the user manually set the letters in the grid and output all possible words, I would be able to cheat at the daily Squaredle puzzle.
But I kept playing with the code and went back to generating my own grids.
First, I made a modification to let the user enter a list of words to force into the grid. Very useful for making Squaredle puzzles with themes, or full of swearwords and slurs (yes, they are all in the official Scrabble dictionary).
After that, I made a generator that aimed to maximise the number of possible words: continually generating random grids, only keeping each new one if it had more words than the last.
Then I tried it the other way around, flipping the algorithm to minimise the number of words... and it hit zero very quickly, which is boring. So what about aiming for exactly one word?
And there, Terridle was born.
It was almost ready, but not quite. The problem was that it would settle on virtually any random word from the dictionary. You might be looking for "TREE", but you might just as likely be looking for "ZYZZYVAS", or (CENSORED).
So I resurrected the word-forcing code from before and began compiling my own list of "acceptable" words for the generator to feed from.
I created a very rough UI, hand-coded with HTML/JavaScript. It worked OK, but was not great to look at, so I have since fed it through Cursor AI to tidy it up.
And that is how Terridle came about. I now have a curator app that I use now and then to manually review my word list and add a few more. Every day, the site's generator picks an approved word and generates a grid for the daily puzzle.