Hoot - Word Game Study Tool

The seed

About six weeks ago I was interviewed for a job with GenesisWorld for a software developer using C#/ASP.NET/T-SQL. The position I applied for was an entry-level job. As a part of the interview, I had to do some coding, in C#. I knew I had used C# before in a school project, and it was in a C#/ASP.NET/T-SQL combination, but discovered that I really did not use much C#, and both the book and the project focused on the ASP.NET side.

Through that process, though, a seed was planted, and I decided I needed (wanted) to learn more about C#. I prefer lower-level languages like C, but since C# is on the short list of programming languages in most demand, I set out to learn it and the best way to learn it is through a major project.

Besides, the other key language in demand was C++, but the latest version of Visual Studio I could install was 2010, and that year Microsoft didn't include IntelliSense for C++.

Word games

At the same time I was re-exploring my interest in word games like Scrabble and Words with Friends. The Scrabble community has been transformed a bit since the last time I was serious about it. The word list has been updated twice since the turn of the century and now Hasbro/Merriam claims copyright on the word list and is enforcing that claim. As a result many of the study tools have been left by the wayside, including Lexpert, the one I used quite often.

So I decided to write an application that would go toward replacing some of the study tools that had been abandoned. Hoot was born as a result. Since the word list used in Scrabble is affectionately called the Official Word List (OWL), I decided on Hoot as a suitable name for the program. After about 6 weeks, Hoot is available for public consumption and constructive criticism.

Hoot Features

Hoot will do most of the functions of the program I used previouslyd With Hoot you can search for words based on beginning or ending letter(s), the size of the word, the words that are contained (subwords), or include the word (extensions), anagrams, and well ...

The provided help file contains this listing of searches you can do in Hoot.


  • Beginners - Shortcut lists for Scrabble beginners
  • Letter Count - Lists by number of letters in the word. Can filter by initial letter
  • Begins/Ends - List of words beginning or ending with a certain letter, prefix or suffix. Select from list or enter in box. 
  • Contains Letters - Lists that contain any of the letters entered
  • Anagrams - List of words that can be made by rearranging letters in the words. Includes sub-anagrams, super-anagrams, standard stems.
  • Stems - List of words that can be rearranged after adding a letter to form several other words.
  • Hooks - List of words that can be formed by adding a letter to the front or back of a word
  • Anagram Hooks - List of words that can be formed by rearranging the letters in the search and adding a hook letter 
  • Extensions - List of words that contain a certain word
  • SubWords - List of words found within a given word
  • Pattern - List of words that match a certain pattern
  • Parallel Plays - List of words that can be played parallel to a word
  • Vowel Heavy - List of words with lots of vowels
  • No Vowel - List of words with no vowels
  • Consonant Dumps - List of words with lots of consonants
  • Q not U - List of words containing a Q, but not a U
  • Palindromes - List of words spelled the same frontward and backward.
  • Named Lists - Custom lists or various subjects
  • Text File Lists - Custom lists saved in a text file.

Most windows also have a Show hooks option that will display the letters that can be added in front or behind the word to form another word.
For example, the word AX is alternately displayed as

flmprstwz AX e

As users try out Hoot they may also discover another feature. As the search screen windows are resized, the list and controls respond to the size, so you could make the list a long skinny one to see more words at once, or a shorter one to save screen space.

Searches also have a slide show mode, where words in a list are displayed individually in a separate window, and
optionally rotated on a timed basis.

Hoot also has a Word Judge screen to judges the validity of a play. The Word Judge can be locked, and displayed separately from the program using a commandline option.

Hoot Shortcomings

Of course, there are many shortcomings, simply because incorporating the features takes time. You might also refer to these as plans for future releases if I continue development.

Searches are generally displayed first by word length and then alphabetically. They cannot be re-sorted unless you use the slide show.

You can change a few things about the display, but more customizations can be added.

One of the plans is to allow users to hide words they already know.

Exporting: You can't export words from the list.

Access as a database, which includes some SQL limitations.

Multiple windows, which some people may find handy, but an optional single screen would appeal to a lot of people.

A more intelligent installer (Wix).

Learning Curve

From a programmer's point of view, I've learned a lot about C# and the .NET framework. C# is very similar to Java, and the .NET framework is quite extensive. As a Microsoft project, I am quite familiar with navigation from previous experience with VBA. Some of the things that I excitedly learned to do include

  • Opening other databases (by changing the connection string run-time).
  • Managing and minimizing spikes in memory use.
  • Using ListBoxes, Lists, TableAdapters, and old-style OLE db access routines. 
  • Develop fast, efficient searching algorithms. Learn what to do when.
  • Filtering keystrokes.
  • Managing window states and events.

And that's just off the top. It was/is an educational experience, and I enjoy education. 


Download the installer or the help file that describes the features from www.tylerhosting.com/hoot/

No feedback yet
Leave a comment

You must be a member of this blog to comment. Log in now!

If you have no account yet, you can register now...
(It only takes a few seconds!)