remove setMaxTestGameDuration, max duration must be set in constructor

master
melvinzhang 2015-02-18 12:54:33 +08:00
parent 8e46952346
commit 7d53c8484b
4 changed files with 8 additions and 15 deletions

View File

@ -192,10 +192,8 @@ public class DeckStrCal {
final MagicGame game=testDuel.nextGame();
game.setArtificial(true);
final HeadlessGameController controller = new HeadlessGameController(game);
//maximum duration of a game is 60 minutes
controller.setMaxTestGameDuration(3600000);
final HeadlessGameController controller = new HeadlessGameController(game, 3600000);
controller.runGame();
if (testDuel.getGamesPlayed() > played) {

View File

@ -171,10 +171,9 @@ public class FiremindQueueWorker {
while (testDuel.getGamesPlayed() < testDuel.getGamesTotal()) {
final MagicGame game = testDuel.nextGame();
game.setArtificial(true);
final HeadlessGameController controller = new HeadlessGameController(game);
// maximum duration of a game is 60 minutes
controller.setMaxTestGameDuration(3600000);
final HeadlessGameController controller = new HeadlessGameController(game, 3600000);
controller.runGame();
if (testDuel.getGamesPlayed() > played) {

View File

@ -25,18 +25,14 @@ import magic.model.choice.MagicPlayChoiceResult;
public class HeadlessGameController implements IGameController {
private long MAX_TEST_MODE_DURATION=10000;
private final long maxDuration;
private final MagicGame game;
private final AtomicBoolean running = new AtomicBoolean(false);
/** Fully artificial test game. */
public HeadlessGameController(final MagicGame aGame) {
public HeadlessGameController(final MagicGame aGame, final long duration) {
game = aGame;
}
public void setMaxTestGameDuration(final long duration) {
MAX_TEST_MODE_DURATION = duration;
maxDuration = duration;
}
private Object[] getArtificialNextEventChoiceResults(final MagicEvent event) {
@ -63,7 +59,7 @@ public class HeadlessGameController implements IGameController {
running.set(false);
} else {
executeNextEventOrPhase();
if (System.currentTimeMillis() - startTime > MAX_TEST_MODE_DURATION) {
if (System.currentTimeMillis() - startTime > maxDuration) {
System.err.println("WARNING. Max time for AI game exceeded");
running.set(false);
}

View File

@ -215,7 +215,7 @@ public class DeckStrengthViewer extends JPanel implements ActionListener {
gameLabel.setText("Game "+(testDuel.getGamesPlayed()+1));
final MagicGame game=testDuel.nextGame();
game.setArtificial(true);
controller=new HeadlessGameController(game);
controller=new HeadlessGameController(game, 10000);
controller.runGame();
progressBar.setValue(testDuel.getGamesPlayed());
if (testDuel.getGamesPlayed()>0) {