Files
BH2023-Minesweeper/references/Minesweeper/MineSweeperSolver/src/minesweeper/solver/bulk/BulkRollout.java
2023-09-28 20:24:18 +08:00

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;
}
}