
This is your last project in CS151! It will be more open ended than the previous projects. The goal is to create a video game using turtle. Be creative and have fun!
You have several options for your final project in CS151, depending on whether you intend on doing extensions.
To complete the base project expectations, you should "finish" the previous project and fully implement asteroids. In particular, this means implementing:
You should submit:
You will be graded on:
Implement Asteroids as described above, but include a few other features. See Extensions below for some ideas. Be creative, but keep it simple.
If you did extensions for Project 10 you can include the implementations this week, but they will not be counted as extensions this week.
Implement a game other than Asteroids, using inheriting from the provided Abstract Class Game. The more detail, gameplay elements, and/or complexity the more extension credit. As usual, code organization and design play a big role and you should follow the standard best practices.
Your game should inherit from the Abstract Class Game. From a grading perspective, I should not see lots of duplicate code in Game and your other game class. Make use of inheritance and extend the basic game mechanics if it makes sense!
Everyone doing extensions will be expected to demo your work to the class on Friday December 8th. The goal is to have fun and give us an opportunity to celebrate your work!
In addition to submitting your code, you will be expected to include at least the following elements in the report. Your report should be about the same length as a usual project report.
The usual abstract — summary of what you made and what concepts you used to do it.
Write whether you completed the base game (no extensions), asteroids with extensions or a new game.
If you completed asteroids with extensions, describe the extensions that you completed.
If you implemented a different game, describe the game. Explain how the game is played and what the rules are. Include links to relevant resources about the game.
Extensions that you completed for Project 10 will not be counted as extensions this week.
Describe your implementation — how you organized your code (e.g. key classes, important methods) and made key parts of the game work (e.g. events, how you solved problems to get key elements of your game working). This should be somewhat similar to the typical Results section of project reports.
Explain how you tested the gameplay in your report, and describe any modifications you made to the program after having someone else try to use it.
This means playing your game! Iteratively refine the controls, rules, difficulty, and artwork. Try to partner with someone and test each other's implementations. Discuss how to improve your programs to make them more responsive or interesting or fun.
No one writes perfect code the first time! If you don't change anything after someone else uses your program, you probably aren't listening to feedback closely enough.
The usual section.
Please provide URLs and sources for any images and artwork you used in your game. This is important and points will be taken off if these citations are missing in your report.
Also cite the usual including students, TAs and faculty you discussed your code with and websites you used as reference.
Include in your project submission ZIP file a maximum 90 second screen recording video of you playing and demoing your game. This should include the start screen, game play, and results screen.
In your report, include at least three still images (Required Images 1, 2, and 3) — one image for each phase of your game: start, main, and end.
Game.Congratulations on your first video game! Thank you for your hard work and creative problem solving this semester. It’s been an honor to work with you, and I hope to see you again in other CS courses in the future. 😃
© 2021 Oliver Layton, Hannen Wolfe, and Max Bender