package minesweeper.solver; import java.math.BigDecimal; import java.util.List; import minesweeper.structure.Action; import minesweeper.structure.Area; import minesweeper.structure.Location; abstract public class BruteForceAnalysisModel { protected boolean completed = false; protected boolean tooMany = false; abstract protected void addSolution(byte[] solution); abstract protected void process(); protected boolean isComplete() { return this.completed; } protected boolean tooMany() { return this.tooMany; } protected boolean isShallow() { return false; } abstract protected int getSolutionCount(); abstract protected int getMovesProcessed(); abstract protected int getMovesToProcess(); abstract protected Location checkForBetterMove(Location location); abstract protected long getNodeCount(); abstract protected Action getNextMove(BoardState boardState); abstract protected Location getExpectedMove(); abstract protected boolean allDead(); abstract Area getDeadLocations(); abstract BigDecimal getSolveChance(); abstract List getLocations(); }