- req Select Java as the implementation language.
- req Implement as an application/applet hybrid.
Also, the core game code can be used from a web application.
- req Separate the core game code from the GUI using RMI?
- req Provide appropriate abstractions.
- req Provide appropriate abstractions.
- req Provide appropriate abstractions.
- req Implement Tic-tac-toe, Pong, Gin, and Eight ball.
- req Use the JUnit test framework.
- req Structure so that the players are interchangeable.
- req A player class will completely encapsulate it's playing
logic.
- req Provide utilities.
- A Game holds all the participating objects required
for a game.
- An Engine drives the game play. For example, an engine implementation may alternate between players in a synchronous game.
- An Environment is where the players and tokens interact.
- An Adjudicator serves as a judge of legal player actions and
determines when the game is over.
- A Token represents an object in the game, such as a
Chess Knight or a spacecraft.
- A Team is a grouping for tokens and players.
- A Player produces player actions to affect the environment.
- A Player Action contains information for a change to the
environment. For instance, a player action may indicate the move of a token.
The user interface is separated from the core game code. The user
interface classes are notified of game changes via events. A user interface may be implemented as a text/command line approach, using AWT, or in
Swing.
- About - display information about the game
- Quit - quit the game
- New - create a new game
- Open - open a previously saved game
- Save - save the current game
- Save As - save the current game to another file
- View status bar toggle - display the status bar
- Audio toggle - play audio
|