package bots.mctsbot.ai.bots.bot.gametree.tls;
import java.util.Stack;
import bots.mctsbot.ai.bots.bot.gametree.action.SearchBotAction;
import bots.mctsbot.ai.bots.bot.gametree.rollout.BucketRollOut;
import bots.mctsbot.ai.opponentmodels.OpponentModel;
import bots.mctsbot.client.common.gamestate.GameState;
import bots.mctsbot.common.elements.player.PlayerId;
/**
*
* @author thijs
*
* Class to keep track of the actions taken during selection and simulation. This information is important to update tests during backpropagation.
*
*/
public class SimulatedGame extends Stack<SearchBotAction> {
public GameState gameState;
public final BucketRollOut rollout;
double value = 0;
public SimulatedGame(GameState gameState, PlayerId bot, OpponentModel model) {
this.gameState = gameState;
this.rollout = new BucketRollOut(gameState, bot, model);
}
/**
*
*/
private static final long serialVersionUID = -628544300776476142L;
public double getValue() {
return value;
}
public void simulate() {
double stackSize = rollout.botState.getStack();
value = stackSize + rollout.doRollOut(4);
}
}