ECE 2524

Introduction to Unix for Engineers

Review of Tic-Tac-Toe game by Ali Majd

Usage

The TicTacToe game developed by Clayton Kuchta and Zac Condon located at https://github.com/clayton8/TicTacToeFinal brings a great old-fashioned game that almost everyone forgot about back to life with the help of Python programming language. The README file that has been uploaded to the github site has all the necassary information someone needs to know in order to get an idea about the game and start the files. However, I think it would benefit the users if they know what to expect once they run the program.

It was great to see that there is no extra step once you have the game downloaded to start it; you simply type python game.py and you have your Tic-Tac-Toe game starting in your terminal waiting for an input. Unfortunately, I noticed that when you input a number other than 1-9 the program forgets to handle it as an error and display a message. Also, the program automatically quits as soon as the game is finished which could represent a possible problem. Other than that the program worked perfectly fine.

Style

The code is very well organized and easy to read. However, I think that if more files were created and in each there were different functions that each take care of a different functionality of the project, the developers would have an easier time re-using this code for another project. Also, the code for the project would have been better if all the GUI functions were defined in a seperate GUI.py

Philosophy

The code is written in a very simplistic manner and works perfectly fine. It shows most of the errors when it should and it stays silent when it needs to do so. Also the graphical interface is made very nicely. In order to make the progrma more UNIXY, it is a good programming practice to prompt the user if they want to quit the game rather than just assuming they want to quit each time the game is finished. Also, creating seperate modules, classes, and functions really helps with debugging the code and is one of the most important unix lessons.