COMP 303 Fall 2006
Project Part 1
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
- Import the content of project-1.zip
into your new project.
- Implements all the interfaces of the scoring and
ai packages according to the specifications in the
Javadoc. ATTENTION: The rule specifications in the Javadoc have
some small differences with the website. The Javadoc specs are the
final authority. 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.
- Write new (or additional) unit tests for all interface methods.
Design your tests to cover as much of the functionality and corner
cases as possible. For each test method, put a small comment
indicating the main purpose of the test.
Hint
Notice the dependency between the AI module and the scoring module in
the project overview.
Bonus Problem
Implement two different computer players with clearly distinct
(and sophisticated) behavior. Write test cases for both. Include in
the Javadoc a description of the overall behavior of the player.
Which player would do better? A maximum of 6 extra marks (out of 30)
will be awarded for this bonus based on the quality/coolness factor of
the extra computer players. The bonus is transferable to other
project components if you go over 100%.
Deliverables
- A self-executing jar file containing all your code and class
files. The execution should launch the test suite. Please submit
through WebCT. See the schedule for the deadline.
Evaluation
This part will be marked out of 30 and will be worth 30% 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:
- Correctness of the code (whether it passes our unit tests);
- Overall quality and design of the code (whether it follows the
principles seen in class).
- Quality and thoroughness of the test cases.