Skip to content
This repository was archived by the owner on Jan 11, 2023. It is now read-only.

Latest commit

 

History

History
80 lines (74 loc) · 3.01 KB

points.md

File metadata and controls

80 lines (74 loc) · 3.01 KB

Points

Basics

  • useful and proper class (explain why)
  • useful and correct abstraction (explain why)
  • useful and correct encapsulation (explain why)
  • useful and correct inheritance (explain why)
  • useful and correct polymorphism (explain why)
  • useful and correct object composition (explain why)
  • useful and correct base class
  • useful and correct abstract base class
  • useful and correct virtual function
  • no error in object-oriented programming

Supplementary

General

  • clean main (i.e. nothing in the main that belongs in a class)
  • no globals, but statics if needed
  • correct safeguards
  • maintainability through clean uniform code style and proper function naming and/or comments everywhere
  • separate header files
  • one complete project that compiles and does not crash
  • fully working project
  • sufficient git commits (+/- weekly)
  • correct files on git
  • working build manual as readme on GitHub (project must be buildable from scratch on a clean PC)

OOP

  • at least 2 standard constructors
    • Player and PlayGame class.
  • at least 2 parameterized constructors
  • at least 2 copy constructors
  • at least 2 destructors
    • Player and PlayGame class.
  • member initialization in constructors (the stuff after a colon)
  • constructor forwarding
  • useful proven (dynamic) polymorphism
  • useful use of "this" (if code doesn't work without it)
  • useful member function
  • default values in function definition
    • setPlayerName
  • useful member variable
  • useful getters and setters for member variables
  • correct use of inline function
  • useful template function or class
  • useful friend function or class

C++

  • everything in one or more custom namespaces
  • 2 useful unsigned chars or other better use of memory-efficient type
    • PlayGame::makePlayerObjects, player.h
  • at least 4 useful const references for variables
  • at least 4 useful const references for functions
  • at least 4 useful bool
  • dynamic memory allocation (new)
  • dynamic memory delete (delete)
  • 2 useful (modern) call-by-references
  • useful string class usage
  • useful container class
  • useful use of nullptr
  • useful use of (modern) file I/O
  • useful exception handling
  • useful use of lambda function
  • useful use of threads

Extension

  • useful Qt class
  • useful use of signals/slots
  • test-driven development (= written test plan or unit tests)
  • bug ticket resolution (with pull request or commit message issue link and issue branch)
  • reporting a bug ticket on another project
  • use of a GUI
  • use of OpenGL or another 3D engine
  • useful use of an external library (not Qt)
  • project working with hardware
  • a nice extra that you think deserves a rating (things you put time into that are not rewarded by an item above)
    • Github Action to compile the program.
    • Many DevOps improvements
    • Including a few others