ECE 2524

Introduction to Unix for Engineers

Theseus and the Minotaur

Usage

The project TheseusAndMinotaur was really fun to play and easy to understand. The README gave me plenty of guidance on how to run this game. I just typed $ ./gameplay.py and it started right away. The README also gave detailed instructions on how to run the game on different operating systems. The program compiles and runs without any errors, and the controls were intuitive and easy to use. The concept behind this game is classic, and it worked exactly how I was expecting. The only inconsistancy between the README and the gameplay was that the Minotaur was represented as a ‘#’ rather than a ‘$’ as indicated in the README, and the Player was represented as a ‘*’ rather than a ‘?’ as indicated in the README.

Style

The source code inside of gameplay.py was extremely well organized. I could look through the code and tell exactly what the game was supposed to do at every location. It might improve the readability of your source code (and the number of files in your repository) if you had an rjar, or similar, file with all of the maps. Your program could load in the rjar and then store the map in some data structure in the code. The names of the files were well chosen so that I could tell the function of each one. Each file did something different, and each file specialized in one specific thing.

Philosophy

This program does not follow one of the standard interface patterns. Each of the layouts for the levels are in separate files, which are read-in by gameplay.py. This program was unique because it was not ‘interactive’ - it reacted to the user’s commands without having the user press ‘enter’ after each move. This fact could illustrate Unix’s Rule of Least Surprise because the user did not expect to have to press ‘enter’ after each move, and the program did not require anything out-of-the-ordinary. The program also follows Unix’s Rule of Silence, and did not output any extraneous text until the player either beat the room or got captured by the Minotaur. As previously stated, the program could be simplified by moving the levels to a single data file, which could be read in during the program’s initialization.