Table of Contents
So far, these examples have been a little bit cut-and-dried. Lets do a meatier example that uses a few more interesting components. Let's play Hangman!
Our Hangman application consists of four pages. The Home page allows a new game to be started, which includes selecting the difficulty of the game (how many wrong guesses you are allowed).
The main page is the Guess page, where the partially filled out word is displayed, and the user can make guesses (from a shrinking list of possible letters):
After you give up, or when you make too many mistakes, you end up on the the Failed page:
But, if you guess all the letters, you are sent to the Success page:
The center of this application is an object that represents game, an object of class HangmanGame. This object is used to track the word being guessed, the letters that have been used, the number of misses and the letters that have been correctly guessed.
This object is a property of the visit object. What's the visit object? The visit object is a holder of all information about a single client's visit to your web application. It contains data and methods that are needed by the pages and components of your application.
The visit object is owned and created by the engine object. It is serialized and de-serialized with the engine.
The application specification includes a little extra segment at the bottom to specify the class of the visit object.
Figure 7.5. Hangman.application
So, returning from that distraction, the game object is a property of the visit object, which is accessible from any page (via the page's visit property).