001 import java.io.*;
002
003 /**
004 * Default User interface for the Hangman game. Provides a console-based user interface.
005 * Obtains user guesses from the keyboard and displays a very simplistic view of the board.
006 *
007 */
008
009 public class SimpleUI implements HangmanUI
010 {
011 /** the playing board */
012 protected Board board;
013 /** the instance of game logic that will call us */
014 private HangmanLogic parent;
015 /** input stream for the keyboard */
016 private BufferedReader in;
017
018 /** Display a welcome message */
019 public SimpleUI()
020 {
021 }
022
023
024 /**
025 * Save a reference to the instance of the Board.
026 */
027 public void setBoard(Board theBoard)
028 {
029 }
030
031
032 /**
033 * Save a reference to the parent (an instance of HangmanLogic)
034 */
035 public void setParent(HangmanLogic theParent)
036 {
037 }
038
039
040 /**
041 * Make the interface visible
042 */
043 public void display()
044 {
045 // establish a keyboard reader
046
047 // Main event loop: loop forever
048 // get the player's move and process it
049
050 // if exception occurs display the exception message
051
052 }
053
054 /**
055 * Display that the player won the game.
056 */
057 public void showWin()
058 {
059 }
060
061 /**
062 * Display that the player lost the game.
063 * Reveal the solution.
064 */
065 public void showLose()
066 {
067 }
068
069 /**
070 * Display the current state of the board.
071 * Specifically, display the turn counter and
072 * display the board in some formatted manner.
073 */
074 public void showBoard()
075 {
076 }
077
078
079 /**
080 * Asks the user for a move until the user enters a move that is valid.
081 */
082 private char getMove() throws Exception
083 {
084
085 // Repeat until a valid move is entered
086 // Prompt for a move
087 // Read the move
088
089 // convert letter to upper case
090 // make sure move is only one letter
091 // if letter is not alphabetic then issue error message
092
093 // Return the move
094 return ' '; // stub implementation to avoid "missing return" error
095 }
096
097 /**
098 * Handle end of game, asking if the player wants another game
099 * If yes, start a new game, otherwise exit.
100 */
101 public void playAgain()
102 {
103 // Prompt for another game
104 // Obtain user's choice
105
106 // if user doesn't want to continue, exit
107 // otherwise start a new game
108
109 }
110
111
112 }