ECE 2524

Introduction to Unix for Engineers

A review to end all reviews

Usage

Deal Or No Deal was a very well executed project. I found that it was exceedingly simple to download, compile, run, and play. The program compiled just fine, however it threw quite a number of warnings. In the end these warnings were inconsequential, but they were there nontheless. Lastly, the program absolutely works as advertised. I have watched my fair share of Deal Or No Deal and I have to say that this was an accurate text representation of it. The program was flexible in how I entered the cases I was picking which I liked. I also did not run into any errors while playing the game. There was one minor problem that I came across though. When I tried to play again after being prompted at the end of the game, it failed to appropriately deal with my affirmative command. All-in-all it was well executed. The only things I would look at changing are maybe the warnings it throws while compiling, the play again bug, and formatting of the game.

Style

This game was all written as one .cpp file. I am borderline on deciding if that is too much for one file or not. On the one hand, it is a simple game and splitting it into multiple files might be making it too complex. However, one large main file can seem kind of cluttered at times. Regardless, the code was well executed. It was cleanly organized and had good readability. There were plenty of comments to help in understanding of the code. However, while comments are always good to have, the code was so well organized and the variables so aptly named that I never once was at a loss for what a method was doing. Once again, the file was a little bit intertwined on itself being in one file and all. But with all the other positives about it, I find myself unable to knock it for that.

Philosophy

Ultimately I felt that this program was only semi-Unix-like. One of the biggest things I noticed was the lack of objects despite using C++, an object oriented programming language. I know Dennis Ritchie is a big proponent of objects-are-not-always-the-way type philosophy, so they get points there. Unix is large on creating simple programs that achieve one thing and feed that into another program. This project was written as one file so they lose some points there. However, the methods inside the file were very modular, so they kind of win some points back with that. Another thing is that this program tries to format its output in an aesthetically appealing way. While this is nice for the user and understandable because it is a game, it goes against the idea of simplified output. Lastly I would like to touch on the fact that this program does an excellent job of following the idea of readability over cleverness. The code was a joy to read, and while cleverness has a place and time, this code did a good job of avoiding it especially considering it is such a simple project that is not in need of command-simplifying code. So like I said the project was only semi-Unix-like, but it was still a very good project.

Mitchell Haugen