The goal of this assignment is to gain experience with C# including some of the more advanced language features.
You will also gain further practice incorporating design patterns into your programs.
The project is worth 60 points (twice a normal programming assignment).
You and your partner will design and develop a video game in C#.
The specifics of the game are up to you, but here are the requirements:
Written in C# - Should be written in C# in Microsoft Visual Studio. You may use third-party toolkits, but then you must install and configure a working build environment on the Windows desktop in my office.
Sufficiently non-trivial - As a guideline, your game should be at least as rich and complex as the submissions to this year's game jam (which lasted 12 hours).
I'll demo the games in class.
While certainly you can use graphics, a console-based text game is also acceptable.
Use 1+ "new" design patterns - Research and make use of at least one design pattern that wasn't in the 14 we covered from HFDP.
You might check out the patterns in the appendix of HFDP or in the GoF book.
Use 1+ "old" design patterns - Make use of at least one design pattern from the set of 14 we covered.
Use 2+ advanced C# features - Make use of at least two advanced features provided by the C# language (e.g. lambda expressions, delegates, asynchronous methods, etc.)
Presentation - During our scheduled final exam period, each group will demonstrate their game.
You should also describe the design patterns and advanced C# features you used.
This includes showing the relevant code and/or UML diagrams.
NOTE: to count as using a design pattern, you need to actually have written some code to implement it .
So no fair just using a built-in container's iterator.
Submission.
Please submit a zip to the Moodle dropbox containing your Visual Studio project.
Be sure to include all assets, etc. that I will need to compile and run it.