COMP 303 Fall 2007
Project Milestone 3
To provide an opportunity to gain additional experience and skills with:
- Design variabilities
- Dynamic dispatch
- Class hierarchy design
Implement the AI module (see the project overview) for your poker game application.
This module provides behavior for computer players. This behavior provides a way for the
game to automatically handle decisions that a human player would normally take (i.e., how much
to bid, what cards to exchange). Isolate the behavior computer player objects should have in an interface, and
implement it. In designing your AI module, you may want to consider the following
The design of the AI module should not allow the system to break the rules of the game or to
cheat. Note that the "artificial intelligence" in computer players does not have to be
"smart" or rely on advanced AI techniques. However, it should be reasonable and justifiable.
- What actions should computer players be able to do (e.g., bid, choose cards)
- For each of the above actions, what type of information about the game would
help in making a decision (amount necessary to call, current hand, etc.)
- What type of information should not be available to computer players?
- How much coupling should there be between the computer players and the game engine, etc.
As part of this milestone, update your driver program (developed for Milestone 2) to use the
functionality of the AI module.
Bonus marks will be given based on the quality and originality of the solutions, at the discretion
of the markers, up to a maximum of 5 additional marks out of 15. Teams with a Milestone 3 mark above
100% can carry the difference over to the next milestone.
- Implement multiple "styles" of computer players (i.e., "conservative", "aggressive", etc.).
- Using reflection, implement a plug-in system allowing third-parties to provide their own behavior classes,
and add them to the game.
- If your implementation of the computer player involves randomness, invent a testing
technique that takes into account this randomness, and use it to test your computer player.
- A jar file containing all your code and class
files (cumulative for the entire project), including driver. Please submit
through WebCT. See the schedule for the deadline.
- A text file (ASCII) with maximum one page of text explaining your main design,
addressing the design points mentioned in "Required Problem", and explaining the rational
behind the AI "behavior" you have implemented.
This part will be marked out of 15 and will be worth 15% of the
overall project grade. In marking your
project, we will looking for the following points:
- Overall quality of the design
- A reasonable implementation of the AI behavior
- Correctness of the code (i.e., freedom from bugs)