ECE 2524

Introduction to Unix for Engineers

Appropriately meta for my final review

Usage

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

    wasn't clear which program to run since both were marked executable.

  • The program compiles/runs without errors:

  • The program worked as advertised:

Style

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

  • Variable and function names are meaningful:

  • Comments are used where appropriate:

    though following a standard format to specify input/output data would aid in document generation.

Philosophy

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

    in some cases, depending on a user's terminal size, displayed text is hidden. A simple pager implementation might be a nice feature without going to a fullblown rouge-like interface pattern.

  • 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 little more modularity could be gained by accepting a sequence of commands on standard input. There could even be a separation into a game engine that accepted commands and prouced JSON or Yaml output with information about the current state which could then be used by a light wrapper that imlemented the text based user interface. Why go through that extra work and abstraction layer? It could allow for easy expansion to a multiplayer or network based environment, or even a simple graphical interface, all running the same game.

  • This program follows the Rules of Representation and Simplicity:

    nice extension of the data format we did in class to implement locked/unlocked rooms.