Basic instructions: Design, code, test and document a C++ program that allows two players to play a game of 4x4x4 noughts-and-crosses. Your program should be able to load & save game states and include a human-versus-computer ability. It must make use of the Win and Pen classes attached, and display a board such as the one attached in the jpg file.
Description Of the game
First, player O puts an O on one of the squares on the
board. Then player X puts an X on one of the empty squares on the board. Then player O puts an O on one of the empty squares on the board. … Until one of the players
wins by lining up four of their counters. Any straight line of four identical counters wins.
## Deliverables
Your design should extend (using inheritance) the classes attached. The example program demonstrates how to extend win. The mouse should be the main source of input, and the X11 window the main (ideally the only) source of output. Add a rhombus function to your new pen class ??" see the following for help: The UNIX manual pages provided by “man XFillPolygon?? and “man XPoint??, and the function “pen::rectangle??. Your OO design should include at least a player class as well. The use of C techniques that have C++ equivalents should NOT be used. Use the “one .h and one .cc?? rule for each of your classes, and keep your main function as short as possible. In addition to the basic game, you must implement the loading and saving of mid-game states and implement a human-versus-computer ability. The program must compile and execute under RedHat with X11. A write up is also required and in it, detail the stages to show the development of your OO design and the derivation of your program from that design. Show the thinking behind each step. Also include a brief user guide.
Documentation, including explanations of your thought processes for each of the requirements analysis, system specification, identification of classes, identification of behaviours, classification of relationships, identification of state variables, design of class declarations, iteration of design (including possible role-play), implementation and testing.
## Platform
Red Hat Linux with X11