Back to CS115 Project 2 description
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. |
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. |
1 pt. | Your program should obey the naming convention indicated in the assignment. |
[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. |
-1 | Missing author name |
-1 | Missing or wrong course and/or assignment |
-1 | Missing or wrong description |
[3] | Each function matches its description and each function implementation is not too long (no more than 20 lines of code). |
-1 | Not true of one funtion |
-2 | Not true of 1/2 or fewer of the functions. |
-4 | Not true of more than 1/2 of the functions. |
[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. |
-1 | Some function doctring is significantly incomplete. |
-2 | Some functions do not have completed doctrings. |
-3 | Most functions do not have completed docstrings. |
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) |
[4] | Important variables have descriptive names that indicate what they are used for |
-2 | Variable declarations are not accompanied by comments |
-2 | Variables do not have names that suggest for what they are used |
1 pt. | Your algorithm is straightforward and easy to follow. |
1 pt. | Your algorithm is reasonably efficient, with no wasted computation or unused variables. |
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!