48 lines
1.2 KiB
Java
48 lines
1.2 KiB
Java
package minesweeper.solver.bulk;
|
|
|
|
import java.util.Random;
|
|
|
|
import minesweeper.gamestate.GameStateModel;
|
|
import minesweeper.solver.RolloutGenerator;
|
|
import minesweeper.solver.settings.SolverSettings;
|
|
import minesweeper.structure.Action;
|
|
import minesweeper.structure.Location;
|
|
|
|
public class BulkRollout extends BulkController {
|
|
|
|
protected final RolloutGenerator generator;
|
|
protected final Location safeTile;
|
|
protected final Location startTile;
|
|
|
|
/**
|
|
* Use the bulk controller to play games from the beginning
|
|
*/
|
|
public BulkRollout(Random seeder, int gamesToPlay, RolloutGenerator generator, Location startTile, boolean safeStart, SolverSettings solverSettings, int workers) {
|
|
super(seeder, gamesToPlay, solverSettings, workers);
|
|
|
|
this.generator = generator;
|
|
this.startTile = startTile;
|
|
|
|
if (safeStart) {
|
|
this.safeTile = startTile;
|
|
} else {
|
|
this.safeTile = null;
|
|
}
|
|
|
|
}
|
|
|
|
|
|
protected GameStateModel getGameState(long seed) {
|
|
|
|
GameStateModel gs = generator.generateGame(seed, safeTile);
|
|
|
|
// play the start tile and return the game
|
|
gs.doAction(new Action(startTile, Action.CLEAR));
|
|
|
|
return gs;
|
|
|
|
}
|
|
|
|
|
|
}
|