$29
In this homework, you will write your game of Peg Solitaire program in C++ using object oriented techniques. Your main class for this homework will be named PegSolitaire. This class will have a public inner class named Cell to represent a Peg Solitaire cell. The class Cell will hold the position of the cell (A, B, C, etc) and the row number (1, 2, 3, etc). This class will also include all necessary setters/getters, constructors etc. Remember a cell can be empty or contains a peg (P), which will be represented by C++11 enum types.
Write a class named PegSolitaire to represent and play the game. The class PegSolitaire will hold a 2D vector of vector of Cell objects to represent the cells in its private section.
The class PegSolitaire will also have the following features and functions
• There is no limit for the board but it should be larger than 5x5 and it should be square. Your game will resize according to the parameter for the constructor.
• There should be at least 3 constructors. One of the constructors will accept the board type (an int from 1 to 6 as shown in HW1)
• The class will have functions to read from and write to files. You will decide on the file format like you did in HW2.
• The class will have functions to return the number of pegs, number of empty cells, and number of pegs taken out from the board.
• The class will have a function that displays the current board on the screen
• The class will have two functions named play that plays the game for a single step. First function does not take a parameter and it plays automatically. The second function takes a cell position and it plays the user.
• The class should have a function that returns if the game ended.
• The class should have a function named playGame. This function plays the game by asking
the user the board type first then automatically plays the game until it ends. The boards should be printed to the screen.
• The class will have a static function that returns the total number of pegs in all the game boards. Be careful here because there could be more than one game active at the same time.
• The class will have a function that takes another object PegSolitaire as parameter and
compares the Peg Solitaire games. It returns true is the first game has more pegs, otherwise it returns false.
• Any other functions (public or private) needed.
Write your main function to test both classes. Make at least 5 objects of class PegSolitaire and play the games at the same time.
You will use all the object oriented techniques that we learned in the class including const, static, inline keywords.
Notes:
• Do not use any functions from the standard C library (like printf)
• Read the chapter about file input output for reading and writing text files using streams.
• Do not use anything that we did not learn in the lectures.
• Do not forget to indent your code and provide comments.
• Check the validity of the user input.
• Test your programs very carefully at least with 10 different runs. Submit at least two saved files with the HW.
• You should submit your work to the Teams page.