UniqueGuesser

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 ...

Get Java Projects - Second Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.