Write a program that will implement the old arcade game, Frogger.
|
Rubric Part One (Style) Marks: |
/15 |
Rubric Part Two (Design) Marks |
/35 |
|
Bonus & Challenge Points: |
|
Total Marks this Assignment: |
/50 |
|
|
|
X Group Work Offset _____ = |
/50 |
|
|
|
Any amount > 50/50 gets added to Bonus / Challenge points |
|
|
RUBRIC PART ONE : STYLE |
|||||
|
Attribute |
Unacceptable |
Meets Requirements |
Exemplary |
|
Points |
|
Presentation |
|||||
|
Information |
Missing Information |
[0.5] Properly prepared for submission; includes all student names; TA; Lab section; Assignment number; Statement of Originality |
N/A |
|
|
|
Files |
Missing files
|
[0.5] All included: required source, documentation, script, instruction (readme) files |
N/A |
|
|
|
Demo: [worth triple] |
Major Problems: Program won't run or crashes unexpectedly. Submitted code seems different from that demonstrated. Programmers seemed confused by the program they were demonstrating. Only one group member participated (out of three). |
[1.5] Minor Problems: Program runs reasonably well. Knew what they were doing. Submitted code matches demo. One group member did not participate. |
[3.0] Good! Demo went well; major features shown and explained. Demonstrators clearly understood their work. All group members participated. |
* |
|
|
Presentation Total |
/3 |
||||
|
Documentation |
|||||
|
Overall Impression |
Misleading; confusing; too much or too little |
[0.5] A few missing, redundant, or irrelevant parts |
[1.0] Accurate; reasonable; easy to read; |
|
|
|
Identifier Names |
Meaningless or misleading names |
[0.5] Some poor choices. Most identifiers were explained where appropriate. |
[1.0] Meaningful identifier names [some single letter names are OK, such as i,j for indices]. Explanations of identifiers where appropriate. |
|
|
|
Indentation; White Space |
Misleading indentation; too much or too little white space |
[0.5] Some inconsistencies; some inadequate or wasted space |
[1.0] Consistent indentation; good use of white space |
|
|
|
External Documentation |
No external documentation when some is needed. External documentation not useful, confusing, out of date, or misleading |
[0.5] Adequate external documentation [javadoc or reasonable facsimile]. The key point is that someone else could work with this program with a little help from the original programmer(s). |
[1.0] External doc. as appropriate; [javadoc or reasonable facsimile]. The key point is that someone else could work with this program based on code and documentation alone. |
* |
|
|
Classes & Logical Blocks |
Few or no logical blocks documented |
[1.0] Most MAJOR logical blocks documented |
[2.0] Documentation for each function and MAJOR loop and MAJOR logical block (possible use of Pre & Post Conditions for functions / blocks) |
* |
|
|
Classes: |
Missing class diagrams |
[0.5] Reasonable attempt at class diagrams: some sort of picture that shows the classes defined and their relationships to each other. |
[1.0] Includes some readable form of class diagram – includes public interface; organized pictures |
* |
|
|
Documentation Total |
/7 |
||||
|
Style |
|||||
|
Implemented what was asked. |
Hardly followed specs; no explanations for deviations |
[1.0] Some deviations; mostly OK |
[2.0] Followed specs (deviations well justified – marker was convinced this approach was reasonable) |
* |
|
|
Style & Efficiency Program Subdivisions (classes and functions) & Flow |
Poor choices of code; too many awkward structures Too many or too few subdivisions: piles of one-liners or almost everything's in one function. Rule-of-thumb: functions/methods shouldn't be much more than one printed page long. Confusing; hard to follow |
[1.0] Mostly well thought out; most parts reasonably efficient; a few remaining awkward parts Mostly reasonable with a few poor choices ************************** Mostly Logical, justifiable structure |
[2.0] Well thought out; reasonably efficient (code & data structures) Reasonable subdivisions (classes/ functions – tasks; roles; behaviours & responsibilities make sense); |
* |
|
|
Constants; Magic Numbers, Globals |
Magic numbers; hard-coded values Inappropriate use of globals. |
[0.5] Appropriate use of constants Most globals properly justified. |
N/A |
* |
|
|
Initialization & Clean-up |
Insufficient: Uninitialized values; no clean-up |
[0.5] Good! Reasonable initialization and clean-up |
N/A |
* |
|
|
Design Total |
/5 |
||||
|
[Rubric One] Style Total: |
/15 |
||||
|
RUBRIC PART TWO: FUNCTION & DESIGN |
|||||||||
|
Attribute |
0.0 |
Attempt |
Meets Requirements "C Version" |
Exceeds Requirements "B Version" |
Exemplary "A Version" |
|
Points |
||
|
Program Specifications |
35 |
||||||||
|
Inheritance |
Unable to assess. |
[2.0] Minimal Some kind of inheritance. |
[3.0] OK, uses Thing class, at least two classes derived from it. |
[5.0] Good Reasonable classes, relationships. |
[7.0] NICE Well thought out. Some interesting ideas. |
|
|
||
|
Frog |
Unable to assess. |
[2.0] Frog, sort of moves |
[3.0] Frog, moves left, right, forward under player's control |
N/A |
N/A |
|
|
||
|
Homes |
Unable to assess. |
N/A |
[3.0] 1 (ONE) home |
[4.0] 3 (Three) Homes |
[5.0] 5 (FIVE) Homes |
|
|
||
|
Vehicles |
Unable to assess. |
[2.0] Some kind of vehicle, sort of moves. |
[3.0] 2 (two) Rows of Different Vehicles going in opposite directions |
[4.0] 5 (five) rows of vehicles going in different directions. |
N/A |
|
|
||
|
Boulevard |
Unable to assess. |
N/A |
N/A |
[4.0] Boulevard, but no timer |
[5.0] Boulevard, With Timer |
|
|
||
|
Critters |
Unable to assess. |
[2.0] |
[3.0] |
[4.0] Alligator (closed mouth) & Small Log |
[5.0] Turtles & Long Log, 5 (five) rows altogether |
|
|
||
|
Debugging Aids (tracing) |
Unable to assess. |
[0.0] No evidence of debugging aids |
[1.0] Some evidence of built-in debugging aids; a few output statements in key locations. "in function X"; "got to here" |
[2.0] Reasonable use of DEBUG flags or reasonable alternative, program tracing and other debugging aids; considerable number of output traces in various locations which give useful information; "in function X: value of counter is: ---"; easy to turn on and off |
N/A |
|
|
||
|
Output |
Unable to assess. |
[1.0] Display works. |
[2.0] Recognizably distinct things on the screen. |
[3.0] Can tell what is what, some different vehicles & critters. |
[4.0] Good! All there. |
|
|
||
|
[Rubric Two] Design Total: |
/35 |
||||||||
|
BONUS: |
|
||||||||
|
1. |
[up to 6 points] |
Make a girl frog. |
|
|
|||||
|
2. |
[up to 6 points] |
Make the aligator's mouth open. |
|
|
|||||
|
3. |
[up to 10 points] |
Include the snakes. |
|
|
|||||
|
4. |
[up to 10 points] |
Multiple (5) frogs per game. [homes can be occupied by only one frog] |
|
|
|||||
|
5. |
[2-3 points] |
Detect "Game Over": when Frog dead; or when Frog gets across. |
|
|
|||||
|
6. |
[2 points] |
Keep score. |
|
|
|||||
|
7. |
[2-5 points, per level] |
Allow different levels of difficulty (different #'s of things, different ranges, etc.) |
|
|
|||||
|
8. |
[2 points] |
Set up "key bindings" so player can use the arrow keys, etc. |
|
|
|||||
|
9. |
[4-? points] |
Make it Interrupt Driven |
|
|
|||||
|
Challenge: |
|
||||||||
|
1. |
[4-? points] |
Add sound. |
|
|
|||||
|
2. |
[4-? points] |
Create a full GUI |
|
|
|||||
|
3. |
[5-? points] |
Do it in colour |
|
|
|||||
|
4. |
[5-? points] |
3-D |
|
|
|||||