ECE 2524

Introduction to Unix for Engineers

I descend into Descendo

Usage

  • The README contained everything I needed to easily use the program:

    Out of date? Mention's running qmake but no .pro files are provided which qmake needs and no Makefile provided which would eliminate the need for qmake

  • The program compiles/runs without errors:

    It compiles without warnings and without Qt dependancies, I just added a simple Makefile

  • The program worked as advertised:

Style

  • The code is cleaning divided into modules and multiple files:

    There was a preliminary separation of modules with the Animation.h, Battle.h and Role.h but the main.cpp could be greatly cleaned up by refactoring out a player class modle, monster module and control module. In addition, there was coupling between the animation module which requirs intimate knowledge about monsters, fights and castles.

  • Variable and function names are meaningful:

  • Comments are used where appropriate:

    Code is easy to follow, but consistent docstraings would aid in understanding how to use what modules are defined.

Philosophy

  • The program most closely follows the ed-like interface pattern:

    The interface was prompt-based rather than command based. With a well defined menu and selection module this wouldn't add too much complexity, but as implemented I'm not convinced the menu-based system is worth the extra complexity in the code over a simpler command interface.

  • This choice of pattern is a good one for this application:

  • This program follows the Rule of Silence and Least Surprise:

  • This program follows the Rules of Modularity and Composition:

    A refactoring of a character class or player module, a monster module and a command interface module would allow for much more flexibility in interface style.

  • This program follows the Rules of Representation and Simplicity:

    Lots of magic numbers and string literals in the code make for difficult maintenance and development. Moving complexity, especially in the form of character and monster stats and options into external text files would simplify the code and allow for easy game modification.