COMP 303 Fall 2008
Milestone 1 - Basic Game Logic
Version 1.0 - 2 September 2008
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
These instructions refer to the code you installed as part of Milestone 0.
- Study the implementation of the classes of the util
package.
- Implement a class that provides the behavior specified in the util.ICardSet
interface.
- Complete the implementation of class model.Hand. The most
complex part of this assignment is the implementation of the
autoMatch method. This method must always complete in less
than 0.1 second. Algorithms that completely solve this
problem are likely to be too slow: experiment with various heuristics
that will solve the problem in the vast majority of cases, while being
fast enough. You should use the tests available to validate that your
implementation at least meets the basics.
- Complete class tests.TestICardSet with unit tests that
tests every single line of your implementation of ICardSet.
- Complete class tests.TestAutoMatch to test as much of
your implementation of model.Hand.autoMatch() as possible.
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 INCLUDE ALL THE SOURCE FILES WHEN
YOU EXPORT YOUR PROJECT. You are responsible for manually
verifying the content of the zip you submit.
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 TestICardSet and TestAutoMatch).
- 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).
Submission
Submit one version per team using WebCT before the hard deadline. If
you are not done you must submit your partial solution. Late
submissions receive a grade of 0. See the main
course web page for deadlines and the details of the submission policy.