the game of Ghost in Java
http://en.wikipedia.org/wiki/Ghost_(game)
You take turns against a computer spelling words. With each turn, the player provides a letter that is part of a word, but if the player provides a letter that ends a word, he/she loses. Ghost uses a tree structure built from a dictionary for the computer to determine how to choose a letter that does not end a word and continues it.