CS 115 Project 2 FULL Grading Sheet

Back to CS115 Project 2 description


Correctness (65 points)

Board configuration (15 points)

5 pts.Game board dimensions match the images and descriptions provided in the assignment description (5x5 grid, margins as defined, color at card borders both when hidden and shown, etc).
5 pts. Board is comprised of the correct number of pieces (12 pairs of images plus an extra image), whose positions and identities are randomized each game.
5 pts.On game start, board is drawn with all cards hidden.

Click behavior (50 points)

5 pts. When the hidden card at coordinate (i,j) is clicked, the card at coordinate (i,j) is shown.
5 pts. The 'first pick' stays shown until a 'second pick' is made, at which point both are visible for a brief period of time (after this, what happens depends on if they match).
5 pts. When the 'first pick' and 'second pick' match, they stay visible and get a red 'X' drawn over their faces.
5 pts. When the 'first pick' and 'second pick' are not a match, they are hidden again.
5 pts. A red 'X' is never drawn over unmatched cards.
5 pts. Matched cards stay visible and stay marked with an 'X' for the duration of the game.
5 pts. When making a 'first pick', the following actions are ignored: clicking in the margins of the board, clicking cards that are matched.
5 pts. When making a 'second pick', the following actions are ignored: clicking in the margins of the board, clicking cards that are matched, clicking any unhidden cards (like the 'first pick').
5 pts. The winning condition gets detected when all pairs have been matched, and the you_won() function is called in this scenario.
5 pts. Program exits without any error messages if the graphics window is closed.

Programming Style (25 points)

Filename (1 point)

1 pt.Your program should obey the naming convention indicated in the assignment.

Docstring (3 points)

[3] There is a docstring at the top of the submitted file with your name (first and last), the course (CS 115) and assignment (Project 2), and a brief description of the program.
-1Missing author name
-1Missing or wrong course and/or assignment
-1Missing or wrong description

Function behavior (4 points)

[3]Each function matches its description and each function implementation is not too long (no more than 20 lines of code).
-1Not true of one funtion
-2Not true of 1/2 or fewer of the functions.
-4Not true of more than 1/2 of the functions.

Function documentation (3 points)

[3] You have completed the docstrings of all functions. Each function includes a docstring explaining the job it does, its input parameters, its return value, and any assumptions it makes about its inputs. See match_graphics.py for examples of how to effectively document functions, their parameters and return values.
-1Some function doctring is significantly incomplete.
-2Some functions do not have completed doctrings.
-3Most functions do not have completed docstrings.

Other documentation (3 points)

Not counting the docstrings for your program and functions, your program should contain at least three comments explaining aspects of your code that are potentially tricky for a person reading it to understand. You should assume that the person understands what Python syntax means but may not understand why you are doing what you are doing.

3 pts.You have at least 3 useful comments (1 point each)

Variable declarations and naming (4 points)

[4]Important variables have descriptive names that indicate what they are used for
-2Variable declarations are not accompanied by comments
-2Variables do not have names that suggest for what they are used

Algorithm (2 points)

1 pt.Your algorithm is straightforward and easy to follow.
1 pt.Your algorithm is reasonably efficient, with no wasted computation or unused variables.

Catchall (5 pts)

You will lose 5 points for having ANY statements outside of a function definition. There are only three exceptions to this rule:

For students using language features that were not covered in class, up to 5 points may be taken off if the principles of programming style are not adhered to when using these features. If you have any questions about what this means, ASK!