Flappy Bird
Milestones
Project Deadline | 2023-07-02T23:59:00-04:00 |
Late Deadline | 2023-07-05T23:59:00-04:00 |
Grading Deadline | 2023-07-08T23:59:00-04:00 |
Staff Solution
github.com/vault50/e23a-games-solutions/tree/master/1
Please notify Doug if you don’t have access to the above via vault50
.
Features
Per the specification for this project, students are expected to implement the following:
- Randomize the gap between pipes (vertical space), such that they’re no longer hardcoded to 90 pixels.
- Randomize the interval at which pairs of pipes spawn, such that they’re no longer always 2 seconds apart.
- When a player enters the
ScoreState
, award them a “medal” via an image displayed along with the score. Choose 3 different ones, as well as the minimum score needed for each one. - Implement a pause feature, such that the user can simply press “P” (or some other key) and pause the state of the game. When they pause the game, a simple sound effect should play. At the same time this sound effect plays, the music should pause, and once the user presses P again, the gameplay and the music should resume just as they were! To cap it off, display a pause icon in the middle of the screen, nice and large, so as to make it clear the game is paused.
This project is graded along the three of axes of Correctness, Design, and Style. Each should be treated as independently as possible (code that is very broken, but has some good ideas that didn’t come to fruition and is extremely well-styled should maybe earn a 2 for Correctness, a 3 for Design, and a 5 for Style, for example.)
Correctness
Award:
- 5 if the requirements above are met with the student having introduced no bugs.
- 4 if there is one minor bug.
- 3 if there are multiple minor bugs, or one major bug, or one of the requirements appears to be missing entirely.
- 2 if there are several major bugs.
- 1 for a very clearly low-effort (missing the implementation of two or more requirements) or very broken submission.
- 0 for no submission at all.
Design
Design is primarily concerned with how elegant, efficient, readable, and clear the student’s code is. Some design questions to consider and leave feedback on include (but are not limited to):
- Is the code unnecessarily complex?
- Is code reused where possible?
- Are there unnecessary loops, conditions, and/or variables?
- Are there places where the student’s code could have been made more efficient?
- Is the code logical in structure?
- Is there repetition of code that could be more cleanly written with the addition of a function?
💡 The course expects that most students on average will be earning a score of 3 or 4 on the Design axis, with perhaps a 2 serving as the low end. Reserve awarding a 5 only to those submissions that are exceptional, for which you can find absolutely no room for improvement. If you can propose even one modification that would improve efficiency, it’s not a 5 and should not be scored as such.
Award:
- 5 for the best designs, with absolutely no room for improvement.
- 4 for better than average designs, with maybe a few quirks.
- 3 for good, solid designs, though there are a few suggestions for areas for improvement.
- 2 for fair designs that feature significant room for improvement.
- 1 for poor designs reflecting very little effort or consideration of design implications of coding decisions.
- 0 for no submission at all.
Style
Style is concerned with the aesthetics of the code (whitespace, comments, etc.). Some style questions to consider and leave feedback on include (but are not limited to):
- Is the student consistent about the use of single quotation marks vs. double quotation marks?
- Is the use of spacing and indentation consistent?
- Are there appropriate comments in the code?
- Is the use of variable names clear, meaningful, and consistent?
- Do files have appropriate names?
- Are there places where an extra newline would help with readability? Are there places where there are too many unnecessary newlines?
- Do lines run on for a long time where it would have been clearer to separate into multiple lines?
Award:
- 5 for the best style, with virtually no room for improvement.
- 4 for better than average style, with maybe a few quirks.
- 3 for good, solid style, though there are a few suggestions for areas for improvement.
- 2 for fair style that feature significant room for improvement.
- 1 for poor style reflecting very little effort or consideration of aesthetics, commenting, etc.
- 0 for no submission at all.