Mastermind servlet

Playing the Mastermind game via the Web is a bit different from what it used to be. Till now, we did not have any user interaction and our classes were designed accordingly. For example, we could add a new guess to the table, along with the partial and full matches calculated by the program. Now we have to separate the creation of a new guess, add it to the game, and set the full and partial matches. This time, we have to display the table first, and the user has to calculate and provide the number of matches.

We have to modify some of the classes to be able to do that. We need to add a new method to Game.java:

public Row addGuess(Guess guess, int full, int partial) { 
assertNotFinished();
final Row row = new Row(guess, full, partial);
table.addRow(row);
if (itWasAWinningGuess(full)) {
finished = true;
}
return row;
}

Till now, we had only one method that was adding a new guess, and since the program knew the secret, it was immediately calculating the value of full and partial. The name of the method could be addNewGuess, overloading the original method, but this time, the method is used not only to add a new guess but also to add old guesses to rebuild the table.

When the program starts, there are no guesses. The program creates one, the first one. Later on, when the user tells the program the full and partial matches, the program needs the Game structure with Table and Row objects containing Guess objects and the full and partial match values. These were already available, but when the new HTTP hit comes in, we have to pull it from somewhere. Programming a servlet, we have to store the state of the game somewhere and restore it when a new HTTP request hits the server.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
18.218.151.44