MoxieMaster application under development
April 18, 2009I recently bought a word game for the iPhone that's been quite addictive. I'd thought every type of word game had been thought up already, but was proved wrong by Blue Ox's innovative Moxie. You are presented with a 5x3 grid of boxes and a single letter at a time to place in any of those boxes. Once you've placed enough letters to spell a word, you are given points, and continue to receive points any time you place a new letter on that horizontal line that makes another valid word. Once you introduce a letter that creates an invalid word, you are penalized with a "Twaddle," which subtracts 30 points from your score and breaks the chain.
The game continues until the letters in the queue run out. There is also a list of special "Moxie words" that give you significant extra points on top of the word's normal score. Although luck plays a strong factor in how well you do on a particular game, the games are quick and you're always left wanting to play one more to see if you can do better.
But this post isn't really about the game itself – it's about the new web application I've been inspired to develop, MoxieMaster. MoxieMaster presents you with the board from Moxie, and serves as a helpful guide as you play the game. Typing a letter into the queue box will provide you with a suggestion as to where on the board to place it to work toward a Moxie word. Adding or a replacing a letter in one of the 15 boxes will update a list of Moxie words for each row that are the nearest to what is currently entered. In a very simple example, if my top row spells "MOOSE," MoxieMaster will let me know that the other Moxie words "GOOSE" and "MOUSE" are very close to my current word. If the next letter I get is a "U," I type it in the queue box and MoxieMaster suggests I place the "U" in the third column of the first row. This example hardly requires the assistance of a program but it illustrates MoxieMaster's behavior and how it could be very helpful in situations where the way to proceed in a game is not as obvious.
MoxieMaster is being developed, once again, in CakePHP. To make the application as quick and easy to use as possible, I'm also building it using Ajax via the jQuery JavaScript framework. I've been using jQuery in small amounts at my full-time job, and decided it was high time that I venture into using it as the crux of a web application. Using Ajax and jQuery allows for minimal strain on the server when the board is updated and allows for the board and suggestions to update without submitting a form or reloading the page. It also provides some small details to improve the interface and load efficiency, such as only updating the board when a letter key or delete/backspace has been pressed and preventing non-alpha characters from being input altogether.
As of this post, the interface and client-server communication is essentially finished, and what remains is the logic for the suggestions. MoxieMaster will be available on my personal site, Perceptes when it is finished. In the mean time, I encourage everyone with an iPhone or iPod Touch to go try out Moxie!