November 28, 2009 Leave a comment
A couple of months ago, my wife and I started playing the game Boggle. Neither of us could remember playing it before, but we were hooked right off of the start and couldn’t get enough of it.
Being me, I also couldn’t get the idea of writing a solver for the boards out of my head. I first wrote a stringlist matching solver, but that was incredibly slow. So I rewrote it to use a tree structure I designed specifically for walking through a list of words. I went looking online after I wrote my solver, and discovered that it is called a trie. And that they are a good way to solve Boggle.
I couldn’t stop tinkering with it, though, and soon found myself writing a computer version of Boggle. I have been working on a lot of things, so I didn’t focus on it solely and it ended up taking a couple of months to finish, although the amount of time I spent actually writing it was significantly less than that. Along with that I was sick recently, which delayed things a bit more.
I decided against having the computer version be multi-player for the reason that it is so easy to cheat. I had already written a simple GUI for solving boards, and it would take far less than 3 minutes to type the words into the solver and get the answers. I wouldn’t do that, but there would be no way to prevent other players from cheating.
After spending a little while thinking about it, I found what I think is a big improvement for a single player variant: you start with 30 seconds to find the words, but you get more time whenever you find a new word. I have found this to be a very addicting change.
I have released my computer variant of Boggle under the name of Tanglet. Enjoy!