/CSharpOOPGame

Primary LanguageC#MIT LicenseMIT

CSharpOOPGame

General Requirements

  • Use C# – the entire work should be implemented in C#
  • GUI, console-based application or web application
  • You may use some GUI library like Windows Forms or WPF
  • Do not use game development engines like Unity, Unreal, etc.
  • Work in a team – all team members should contribute
  • Use Git Version Control System and a public repository (e.g. GitHub, Bitbucket, …)

Deliverables

Submit a link to a source control system (e.g. Github) or a file repository (like Dropbox) containing the following:
  • The complete source code of your project.
  • A presentation of your project (e.g. PowerPoint slides) or other brief documentation (1-2 pages) of your project. It should provide the following information:
  • Project name and purpose – what you have created
  • Team name, list of team members
  • Contributions of each team member
  • Any other information (optionally)

Minimum Requirements

You must fulfil every single criterion listed below. If these requirements are not met, you won't get any points for your project.
Please define and implement the following object-oriented assets in your project:
  • At least 10 interfaces (with one or more implementations)
  • At least 15 classes (implementing the application logic)
  • At least 1 abstract classes (with inheritors)
  • At least 1 custom exception class (with usage in your code)
  • At least 3 levels of depth in inheritance
  • At least 1 polymorphism usage
  • At least 1 enumeration
  • At least 1 event (with subscribers)
  • At least 1 design pattern (e.g. Composite, Singleton, Factory, Wrapper, Bridge, Command, etc.) You might read about design patterns in Wikipedia, Sourcemaking, DoFactory and others.

Assessment Criteria

  • Project – 25
  1. Code Quality (correct use of patterns, following language conventions, etc.)
  2. Functionality (rich and seamless functionality, demonstrating application of course material will be scored higher)
  • Teamwork – 50
  1. Source Control (use of Issues, Branches, regular commits by all team members)
  2. Task Management (coherent implementation process, following increment steps)
  3. Project Scope (you've met all goals that you started with)
  4. Team Communication (team members are kept up to date with each other's progress)
  • Defense – 25
  1. Answer Questions (defend your work!)
  • Bonus – 10 (awarded for achievements outside this assignment)