55 lines
1.2 KiB
Java
55 lines
1.2 KiB
Java
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<? extends Location> getLocations();
|
|
|
|
}
|