Lab |
Assigned |
Design Due (In class)
10 AM |
Implement (In Lab) |
Demo (In Lab) |
Lab Due (In class) Friday 10 AM |
| 11 | Apr |
17 | Apr |
18-19 | Apr |
25-26 | Apr |
28 | Apr |
Class sponsored design
Zip file for canvas (and terminal) with draggable shapes
Overview:
You are to design and implement the game of checkers.
Goals:
By the end of this lab, you should
- Understand more about subclassing
- Understand two-dimensional arrays
- Understand how to represent a set on a computer
- Understand how to implement set operations on a computer
This lab contains two parts, design
and implementation, due on the dates shown above.
Before starting:
- Read over this entire document before you start.
- Study the ADT examples in class and in the notes.
- Study the subclass examples in class and in the notes.
- If you need help, please ask.
Particulars, Checkers
If you don't know how to play, some sites that can help are listed below.
But you can also ask around, or get some friends to help you with the rules.
Things to think about in your design.
- Are jumps obligatory? See the above for rules. If you want to deviate
from then, say so in your design document.
- How is the checker board created?
- Is the size and coloration fixed?
- Can the board be reset to an initial configuration, or should a
new instance of your class be created to achieve this?
- How have you generalized the behavior of the user and the computer in
terms of how they make a move on the board?
- How is a move verified as to its legality? Are all moves checked or
only the user's?
- What is the process by which a piece is moved?
- What effect does a move have on the board?
- How do you keep score? How is the score shown or reported?
- What kinds of fancy features are you thinking about for extra credit?
What to turn in:
- Design
-
- Complete a design cover sheet.
- Describe the classes in your design. For each class, give its
API.
Ideas for the design will be discussed in class.
- Implementation
-
- Complete a code cover sheet.
- Provide a
transcript from your self-tests.
- Provide a printout of any files you have modified.
Last modified 14:45:25 CDT 23 April 2000
by Ron K. Cytron