COMP 303 Fall 2009
Milestone 1 - Basic Game Logic
Version 1.0 - 2 September 2009
Objectives
- To experiment with interface programming.
- To learn how to design, implement, and run unit tests with jUnit.
- To learn how to explore and use large class libraries to
efficiently solve development problems.
Required Problem
Download the Project skeleton.
- Implement the following classes of the util package
according to the specifications described in the Javadocs:
- Implement the following classes of the model package
according to the specifications described in the Javadocs:
- model.Hand
- model.TurnHistory
- Implement a deterministic non-passing AI robot that
conforms to the robots.IRobot. Interface. You are free to
implement any reasonable game behavior for this robot, with the
following two requirements:
- The robot must choose a play if one is allowed.
- The choice of the robot must be completely predictable from the
input. You should briefly describe how the robot makes its decisions
in the class-level comments of the implementation class.
- Implement test classes for all classes above. Your tests should
achieve at least 100% line coverage, but make sure to write
tests for what you would expect to be the most difficult parts of the
implementation. Why isn't basic line coverage sufficient to give you
confidence in your implementation in some cases? Link your test
classes into Milestone1Test.java to run them all as a suite.
ATTENTION:You must reuse the class names provided in order for
us to be able to run your classes with our tests. You can add
new classes as you see fit.
Deliverables
Your project exported in a zip file (Export | Archive
File), including all the source, binary, and resource
files. You project must compile and run immediately when imported in
Eclipse.
ATTENTION: Make sure to also include all
the SOURCE files when
you export your project. You are responsible for manually
verifying the content of the zip you submit. Every year, a couple of
groups forget this, no matter how big this message is.
Evaluation
This part will be marked out of 25 and will be worth 25% of the
overall project grade. It will also be the foundation of your entire
project so it is important that you do it well. In marking your
project, we will looking for the following points:
- Appropriate format of the deliverable (compiles, with all source
files available).
- Correctness of the code (how many of our unit
tests it passes. Note that we will test your code against our own
version of the tests.
- Overall quality and design of the code (whether it follows the
principles seen in class).
- Quality and thoroughness of the test
cases (how much of your implementation is covered by the tests).
- 5% bonus for teams registered on time.
Submission
Submit one version per team using WebCT before the hard deadline. You
are encouraged to submit early and submit often. Late submissions receive an
immediate penalty of 5 marks out of 25, with an additional penalty of
1/25 per hour (e.g., a submission 2hrs late receives -7/25=-28%). The submission site closes 12hours after deadline and
projects not submitted by then are not graded and receive a mark of
0%. See the main course web page for
deadlines and the details of the submission policy.