(1) Introduction The Start Window ================================ The player is prompted for his / her name. This is where the initial communication (Handshake) between the client and the server takes place. The client then fires a request for the Active Games List. When the user hits submit, the control is then passed on to the next window. This window also has a How to Play button and Connection Settings button. The player needs to ensure that he / she has the right server host name and port in place to connect to the Boggle server. (2) Active Games Window ======================= This window displays the list of games that are active at that point. From the list, the user also gets a hang of the game statistics information. This includes the game id, name, owner, time at which it starts or the time remaining. The player can either start a new game or join one of the existing games. The player can also make use of a Refresh button to get the latest view of the active games list. Once a join game is requested, the server performs the following:- The new player is added on to the List of Active Players in the Game object that was requested. The user is then returned with a handle to this game object. For a new game request, the server creates a new game object, initializes it with this new player and returns to the client a handle to this new game object. (3) Boggle Game Window ===================== This is the main component where the actual game is played. The window consists of the Boggle Words Panel, The Game Details panel, Words List panel and the Scores panel. Once a word is submitted, it is sent to the Boggle Word Validator to check if the word is present in the Boggle Board. If it is present, then it is also sent for a validation in the dictionary. It is quite obvious to note that these operations take place on the client side. Once it returns with a success, it is finally sent to the server for a final validation. The server checks if this word has already been submitted by any other player. If not, the player is updated with the new score. This also gets reflected on the Game Window. Otherwise, the player is informed that the word has already been submitted by another player. Hence each word can have either a success status in which case the length of the word is added to the score or one of the three following failures: 'Word not in Boggle', 'Word not in Dictionary' or 'Word already submitted'. The Scores panel fires a periodic request to get the most recent list of players' scores. This list also includes the current player. The Game Details panel displays vital game information like the player name, lead scorer, time remaining (along with a progress indication), current score. (4) ScoresWindow =============== Once the timer expires, the user is then taken to the Scores Window where the user is presented with the final set of scores. It consists of a table of players and their scores together with the winner's name. From here, the user can either choose to play another game or Quit.