**a.** Compile the project with the command "make" and run the program with the command "canfield". At this point the program should compile but it won't run properly yet.
**b.** Complete the implementation of all the functions specified in the classes Stack and Queue. This means 2 functions for the class Stack (the push and the pop), and all the functions in the class queue, most of which should be almost identical to the corresponding functions from the class Stack.
**c.** At this point the program should be functioning correctly. This program implements the game of Canfield. You can familiarize yourself with this game by running the program called AisleRiot that you can find under the Gnome menu- Games for most computers running Red Hat Linux 6 or later. To run this program from a terminal you can use the command "sol". From the Game menu you can select New Game Of and then Canfield. The Help menu of this program will provide a set of rules for the game. A copy of them can be found here:
Our program is a simplified version of the original Canfield in the sense that the cards are not marked for colors so any card can go on any other on the tableaux as long as the number is correct. We also allow an unlimited amount of re-dealing.
**part 2.** Modify the Canfield game itself with the following improvements:
**a.** If a tableau is empty after a move and the reserve is not empty, a new card should automatically be moved to this tableau.
**b.** After each movement, you should check if the player has won the game and display an appropriate message if this is the case. Add this feature as a function and find the most appropriate place to call it in the canfield.cc file.
**c.** Add a score keeping feature to the game that simply counts the number of cards moved to the foundations and display it below the cards.
**d.** Sometimes a whole tableau could be moved directly to a foundation. For this, if the user enters a 'T' to move a whole tableau and specifies a foundation as the destination, move the entire tableau to that foundation if possible.
**If** **it is necessary to modify source files other than "stack.cc", "queue.cc", "canfield.cc", "canfield.h" I need to be informed of which files.**
1) Complete and fully-functional working program(s) in ready to compile (linux) form as well as complete source code of all work done.
2) All deliverables will be considered "work made for hire" under U.S. Copyright law. Buyer will receive exclusive and complete copyrights to all work purchased. (No GPL, GNU, 3rd party components, etc. unless all copyright ramifications are explained AND AGREED TO by the buyer on the site per the coder's Seller Legal Agreement).