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. |
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.0]
Minor Problems:
Program runs reasonably
well. Knew what they were doing. Submitted code matches demo. One group
member did not participate. |
[2.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; behaviors & 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 alligator'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 |
|
| |||||