ECE 2524

Introduction to Unix for Engineers

whack-a-mole for the terminal

Usage

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

  • The program compiles/runs without errors:

  • The program worked as advertised:

Style

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

    Nice separation of the option module. Some implementation code that is in header files would probably be best moved to .cpp implementation files.

  • Variable and function names are meaningful:

  • Comments are used where appropriate:

    Probably a good idea to consistently apply docstring style comments for all classes/methods, even though the names make them fairly self explanatory.

Philosophy

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

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

    Altough this interface pattern works quite well a rogue-like pattern might be appropriate as well. Since it wouldn't make too much sense to make a non-interactive mode anyway, I don't think the rogue-like interface would have any strong dissadvantages.

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

  • This program follows the Rules of Modularity and Composition:

    If there was a simple command interpreter that would accept commands like start modeA, combined with a non-interactive standard input mode you could easily provide a text interface like the one currently available as well as a graphical 'whack-a-mole' style interface using the same game core.

  • This program follows the Rules of Representation and Simplicity:

    The gamemodes could probably all extend a common base class which would simplify the main game loop. Use polymorphism instead of an if/else if sequence. The size of the row is determined by the magic number 4. This could be made a variable supplied on the command line, or obtaine from a config file.