@Override
	public GameState choose(Player player, GameState[] states, Card card) {
		
		for(GameState s : states)
		{
			s = findSetToTrue(s,card);
		}
		
		//If there's only one choice, we have no choice but to do it
		if(states.length == 1)
		{
			return states[0];
		}
		
		int alpha = Integer.MIN_VALUE;
		int beta = Integer.MAX_VALUE;
		GameState choice = null;
		
		//We perform alpha beta search on each state to see if
		//it's the best
		for(GameState s : states)
		{
			int check = alphabeta(new GameState(s), alpha, beta, 
					player.getFaction(), maxDepth);
			
			System.out.println("\ncheck: " + check);
			
			
			
			//Check to see if this state is better
			if(check > alpha)
			{
				alpha = check;
				choice = s;
			}
		}
		
		return choice;
	}