package de.tu_dresden.inf.ggp06_2.strategies;
import java.util.Random;
import de.tu_dresden.inf.ggp06_2.resolver.Connective;
import de.tu_dresden.inf.ggp06_2.resolver.Const;
import de.tu_dresden.inf.ggp06_2.resolver.Expression;
import de.tu_dresden.inf.ggp06_2.resolver.ExpressionList;
import de.tu_dresden.inf.ggp06_2.resolver.structures.GameNode;
import de.tu_dresden.inf.ggp06_2.simulator.Game;
public final class RandomStrategy extends AbstractStrategy {
private final Random random = new Random();
public RandomStrategy(Game game, String role) {
super(game, role);
}
@Override
public Expression pickMove(GameNode gameNode) {
ExpressionList moves;
try {
moves = game.getLegalMoves(
role, gameNode.getState(), timerFlag );
}
catch ( InterruptedException e ) {
return Const.aNoop;
}
if ( moves.isEmpty() )
return Const.aNoop;
int randomInt = random.nextInt( moves.size() );
Connective randomMove = (Connective) moves.get(randomInt);
return randomMove.getOperands().get(1);
}
}