Proposed Homework 3 grading guideline


General:  do most of the grading based on operation of the program.  Look it over to check for obvious and major failings of style.

Mockup (already graded)

Part A: 26 pts.

No extra credit if the program does more than it needed to at this point.

Confidential report: each team member was required to do this.  1 pt. off if someone didn't turn one in.  Read the report but do not take it into account in grading.  If there is something unusual in the report (like difficulty with a partner), please let me see it.  Keep the reports and do not hand them back.  Give them all to me when grading is finished.

4 General
Correct file and package names
Contain AUTHOR variables, etc.

6 Controller
Start game button (doesn't have to allow specifying number of towers or disks).  Must put the game back to an initial state.
Game must be able to restart at any time.
Move: a way to select from and to towers
Move: a way to initiate a move, passing the correct parameters

6 View
Text-only is OK
Must show the towers and label them.
Must show the disks (in the correct order top to bottom) and label them.

6 Model
Does not allow illegal moves
Makes legal moves correctly
Can be reinitialized (restarted)

4 Report
What works/doesn't for each module
Data structures discussion
Other (algorithms, etc.)

Part B: 22 pts.


Functionalty left over from part A.  Should now be working.   This does not have to be checked separately -- can be included in Part C.

10 Controller
Start Game must have a way to indicate number of towers and number of disks.
Start Game must pass the correct parameter values to the model.
Backup -- must be a button or other control to request backup
Must refresh the view when needed.

6 View
Should be "graphical" rather than textual.
Must show any number of towers and disks -- any number within reason

6 Model
Must handle different numbers of towers, different numbers of discs.
Must handle backup (undo), all the way back to the beginning of the game (and no further!)

Report -- no separate report needed -- can use Part C report

Part "C" (the new features of Part B):  26pts.


12 Controller
Must have a Mass Move capability --
way to indicate number of disks,
way to indicate source and target towers,
make appropriate moves
signal if an illegal mass move is requested
report the number of individual moves
Must have a Collect ("auto-stack") feature
way to indicate target tower
make a correct series of movesn made
make no moves if the request is illegal
report the numer of individual moves made
Inplement the restart method (not necessary to test -- can just see if it is in the code)

3 View
Indicate what the most recent move was

5 Model
Implement several new methods

6 Report
As above