Midterm Programming Test Self-Evaluation Report Your name: ______

Fill out this self-evaluation report and remember to upload your .cpp file(s) too:

·  If the coach version is finished perfectly, just submit the .cpp file for the coach version.

·  If the smart version is finished perfectly but the coach version is flawed, then submit the .cpp files of both the coach version and the smart version.

·  If the dumb version is finished perfectly but the smart version is flawed, then submit the .cpp files of both the smart version and the dumb version.

·  Otherwise, just submit whatever you can do for the dumb version.

Answer the following questions regarding your program on the midterm-programming test
1.  Can your program repeatedly (i) display a menu like the one shown in the demo executables and (ii) allow the user to pick one of the options (commands) either to change the settings of the game or to play the game? ______
If there are flaws, please describe the flaws.
2.  When playing the game with the user,
can your program (i) allow the user and the computer to take turn to play the game (in a way at least like what the dumb version can do) according to the settings of the game until the end of the game and (ii) on each turn always correctly display the latest information regarding the number of coins currently left, the player to make the move now, and the move made by the player? ______
If there are flaws, please describe the flaws.
3.  When playing the game with the user,
can your program (i) always make legal moves when it is its turn, (ii) always detect and refuse illegal moves made by the user and repeated ask the user to do it again if that happens, and (iii) correctly report the winner of the game in the end? ______
If there are flaws, describe the flaws.
4.  When playing the game with the user under the stetting that taking the last coin means winning the game,
can your program play optimally to win the game all the time when the game is to the computer’s advantage as shown in the smart version? ______
If there are flaws, please describe the flaws below.
5.  When playing the game with the user under the stetting that taking the last coin means losing the game,
can your program play optimally to win the game all the time when the game is to the computer’s advantage as shown in the smart version? ______
If there are flaws, please describe the flaws below.
6.  When playing the game with the user under the stetting that taking the last coin means winning the game,
can your program correctly inform the user on each turn whether there is an optimal move or not and whether the user is making an optimal move as shown in the coach version? ______
If there are flaws, please describe the flaws below.
7.  When playing the game with the user under the stetting that taking the last coin means losing the game,
can your program correctly inform the user on each turn whether there is an optimal move or not and whether the user is making an optimal move as shown in the coach version? ______
If there are flaws, please describe the flaws below.
8.  When playing the game with the user under the stetting that taking the last coin means winning the game,
can your program (i) allow the user to request the computer to make a random move when the computer actually has an optimal move to make and (ii) inform and allow the user to retract their move when the user actually has an optimal move to make but fails to make that optimal move as shown in the coach version? ______
If there are flaws, please describe the flaws below.
9.  Is your program well documented with comments and well indented? ______
If there are flaws in this regard, please describe the flaws below.
Answer the following questions regarding the process of your midterm-programming test:
1.  Find one person as the user to play with your program for at least 10 minutes and put down their comments below.
Name of the user: ______
Put down the comments from the user below.
2.  Estimate the time you spent in the midterm programming test: _____ hours.
3.  Have you ever used C++ code found on the Internet or provided by other people forthe programming test?______
4.  Have you ever shown your C++ code for the programming test to another person to seek help for doing the programming test? ______
5.  Have you ever asked for help from others when you have compile-time errors or run-time errors while doing the programming test? ______
6.  Have you ever asked for help from others about how to use C++ statements to implement things you have to do in your program? ______