August 2018
Intermediate to advanced
524 pages
14h 45m
English
The UniqueGuesser class has to implement setFirstGuess (all concrete classes extending an abstract class should implement the abstract methods of the parents), and it can and will override the protected nextGuess method:
package packt.java189fundamentals.example.mastermind;
import java.util.HashSet;
public class UniqueGuesser extends Guesser {
public UniqueGuesser(Table table) {
super(table);
}
@Override
protected void setFirstGuess() {
int i = lastGuess.length - 1;
for (var color = table.manager.firstColor();
i >= 0;
color = table.manager.nextColor(color)) {
lastGuess[i--] = color;
}
}
The setFirstGuess method selects the first guess in such a way that any possible color variations that come after the first one create the guesses ...