ECE 2524

Introduction to Unix for Engineers

Mind the master

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:

    everything seemed to be in the void mastermind function

  • Variable and function names are meaningful:

  • Comments are used where appropriate:

Philosophy

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

    typing begin seems like an unnecessary deviation from an otherwise ed-like interface style.

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

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

    For the given style the level of verbosity made sense, though a non-interactive, silence-is-golden mode would be handy for composition (see below).

  • This program follows the Rules of Modularity and Composition:

    This type of game would be well implmented as a simple core input/output module. lines of numbers in, simple set of two numbers out, no extraneous text. The a simple text UI wrapper could be written that would provide the current interface, but just as easily a GUI could be used as well.

  • This program follows the Rules of Representation and Simplicity:

    While there isn't a ton of opportunity for moving complexity into data structures, there are quite a few magic numbers (index limits in loops, the size of the numbers array that shold either be obtained from the data (in the case of loop index limits) or customizable with a config file or command line option (numbers array size).