An instance of the Game class contains a Row holding the secret color values and also contains a Table. When there is a new guess, the Game instance stores the guess into the Table and also sets the number of positions and colors matching the secret row:
package packt.java189fundamentals.example.mastermind;
public class Game {
final Table table;
final private Row secretRow;
boolean finished = false;
final int nrOfColumns;
public Game(Table table, Color[] secret) {
this.table = table;
this.secretRow = new Row(secret);
this.nrOfColumns = secretRow.nrOfColumns();
}
public void addNewGuess(Row row) {
if (isFinished()) {
throw new IllegalArgumentException(
"You can not guess on a finished game.");
}
final int positionMatch =
secretRow.nrMatchingPositions...