Modify your program so that the line "int numStones = ui.readStones();" in the Game constructor is considered. Depending on the value of numStones read from the user, you should create an array of stones of that size. For example, if numStones is 5, rather than 4, you should create an array of stones of size 5, rather than 4. For any given number of stones, the treasure chest should always be placed just to the right of the last stone, at position numStones+1.
You may assume that the user will enter at least 3 stones, and no more than 8 stones. You do not need to check that the user input is within range. The symbols for stones 1-8 are respectively #, @, %, $, !, ^, *, ~.
The formula for unlocking the combination of the treasure is the same as assignment1, but is extended to support any number of stones as follows:
- For 3 stones A,B,C the combination to unlock the treasure is A+B (ignoring C)
- For 4 stones A,B,C,D the combination is (A+B)*C
- For 5 stones A,B,C,D,E the combination is (A+B)*C+D
- For 6 stones A,B,C,D,E,F the combination is ((A+B)*C+D)*E
- For 7 stones A,B,C,D,E,F,G the combination is ((A+B)*C+D)*E+F
- For 8 stones A,B,C,D,E,F,G,H the combination is (((A+B)*C+D)*E+F)*G
Note: You will be penalised for using a long cascading if/else statement. Instead, you should
use a loop that successively adds and multiplies the numeric values of the stones placed in the treasure chest.
Submit to PLATE at any time to receive marks and feedback. Note that it is possible to receive partial marks for a partially working solution.