Introduction
You've learned a lot this semester! Now it's time to use that knowledge for a fun and interesting project of your choosing!
Self-defined project
Your project should be something interesting technically, and enough to keep you busy all week. That said, try not to be too ambitious. We'd hate to have to give you an awful grade because you hand in a pile of code that doesn't run/work.Good ideas:
- Arcade games: Frogger, Pacman, Space Invaders
- Casino games: Blackjack, poker, etc.
- Board games: 2-player chess/checkers/backgammon
Bad ideas:
- Board games like Monopoly, with lots of complicated actions
- Board games like Candyland, where the players technically don't do anything but move pieces. Your users would just watch the game get played for them.
- Board games like chess where you play agianst the computer. AI is easy. Good AI is HARD.
Note: for some of the simpler games, like blackjack, writing in an AI dealer player is fine. Encouraged even. At a casino, the dealer follows the rules given to them by the house anyway.
Deliverables
When you turn in your project, it should be able to immediately be run on the unix machines in Gates. You can make sure of this by putting it in your home directory on afs and running it there before handing it in.In addition to your .py file(s), please write up a brief .txt document describing your project. What it does, how it works, any particularly cool things you had to implement. Most importantly, tell us how to interact with it If it's a game, describe the controls, if it's a simulator of some kind, let us know how to operate it, otherwise we might not see all of your hard work.
Some guidelines:
- If you include non-standard modules, please make sure you hand in a copy of them so we don't have to chase them down.
- If we have to install something to get your code to run, please include a text file explaining exactly what it is, where to get it, and how to use it. Chances are very high that we've never seen or used whatever it is.
- Aside from the things above, your code should just run when we call 'python projectName.py' If you have debugging print statements, remove them or comment them out. We will have 60 of these to grade in a short amount of time, so make it easy on us. Our time spent tweaking your code to get it to run costs you points.
Other tips:
Try to design your project in such a way that you can get a basic version running and then add things to it.
For example: A running version of Pacman has a board, walls that you can't pass through, and a yellow dude you can control with the arrow keys. He doesn't even need to move on his own for it to be considered working. From there you add motion, pellets, ghosts, scoring, lives, sound, fruit, etc.
Handin
To handin, create a folder with your andrewID and within that, use the numbered versioning system we've had on the last few assignments.Don't forget your explanation file
Note: if you have copies of modules you are handing in as well, make sure they end up in all of your submissions, not just the first.
Also note: You cannot use late days on your final project.