- 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, Qubic, Pong, and Gin.
- req Use the JUnit test framework.
- req Structure so that the agents are interchangeable.
- req An agent 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 agents in a synchronous game.
- An Environment is where the agents and tokens interact.
- An Adjudicator serves as a judge of legal agent 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 agents.
- An Agent produces actions to affect the environment.
- An Action contains information for a change to the
environment. For instance, an agent 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
|