| Category |
Points |
Min |
Max |
MouseControl
-
Does not return until a valid place on the screen has been clicked
-
Correctly determines which tile or button has been clicked
-
Uses provided constants for return values. Return values not hardcoded.
|
|
0 |
8 |
ResetBoard
-
Resets the tiles to their factory installed positions (in order)
-
Clears the stack of all moves (Click 'Solve' to test)
-
Resets number of Moves
-
Game continues to function correctly after it is reset
|
|
0 |
3 |
Shuffle
-
Uses random numbers to shuffle the board
-
Makes ShuffAmount valid moves
-
No tile bouncing - a tile moved in one direction is not immediately moved
back to its original position.
-
Moves pushed to stack correctly (Click 'Solve' to test)
|
|
0 |
5 |
MoveHole
-
Moves the hole in the direction specified in SI
-
Returns error if move attempted is invalid
-
Uses lookup tables to efficiently implement (lose efficiency points if
not)
-
Motion is animated using Delay routine
-
Does not alter the stack
|
|
0 |
8 |
DrawBoard
-
Draws the buttons as well as the tiles
-
Draws any other static screen elements
|
|
0 |
4 |
UpdateScreen
-
Updates the "Number of Moves" display
-
Updates the "Delay" display
|
|
0 |
4 |
Delay
-
Causes some sort of delay that is directly proportional to value in Delayc
|
|
0 |
1 |
Random
-
Returns a somewhat random number (Click 'Shuffle' to test)
-
First call to random returns the seed
-
Correctly implements R(i+1)=(K1 * R(i) + K2)%MaxValue
|
|
0 |
3 |
AutoSolve
-
Pops all moves from the stack to result in a solved puzzle (all tiles in
order)
-
Increments Moves variable for each pop
|
|
0 |
3 |
DrawTile
-
Correctly draws a tile at the location specified by BX
-
Labels the tile with the number in AL
-
Tile color remains consistent (Tile 1 is always drawn as the same color)
|
|
0 |
3 |
CheckMove
-
Determines if a user's click represents a valid move
-
Moves tiles in line with the hole
-
Moves multiple tiles, if necessary
-
Correctly pushes moves to the stack (Click 'Solve' to test)
-
Increments Moves variable for each move.
-
Uses MoveHole and UpdateScreen.
-
Efficiently determines hole alignment. (lose efficiency points if
not)
|
|
0 |
8 |
| Functionality SubTotal |
|
0 |
50 |
Comments (* percentage of code written)
-
Clear and precise line & procedure comments
(describes all major routines and any additional routines): -0
-
Sports Announcer comments (line-by-line): -1
-
Unclear comments: -1
-
Sparse comments: -3
|
|
-5 |
0 |
Technique & Style (* percentage of code written)
-
Compact and Efficient code: -0
-
Contains repeated code (lacks loops): -3
-
Makes poor use of registers and/or variables: -2
|
|
-5 |
0 |
I/O Specs & Modularity (* percentage of code written)
-
Violates specifications for given subroutines: -5
|
|
-5 |
0 |
Penalty/Bonus
Before 5pm, Tuesday 3/10/98: +1 pt/weekday
After 5pm, Tuesday 3/10/98: -10 pts/weekday |
|
-50 |
5 |
| Total |
|
0 |
55 |