@Override
	public Action getAction(GameState state) {
		if(state.getRound() == Round.PRE_FLOP){
			double prob = rollout.winRatio(state.getActivePlayerCount(), holeCard1, holeCard2);
			if(prob > BET_THRESHOLD){
				return Action.BET;
			}else if(prob > CALL_THRESHOLD){
				return Action.CALL;
			}else{
				return Action.FOLD;
			}
		}
		Card[] hole = new Card[]{holeCard1,holeCard2};
		Card[] communalCards = state.getCommunalCards();
		Hand myHand = Hand.getBestHand(hole, communalCards);
		double handStrength = HandStrengthCalculator.calculateHandStrength(hole,communalCards, myHand, state.getActivePlayerCount());
		logger.trace("Hand strength with hand {} was {}",myHand,handStrength);
		if(handStrength > BET_THRESHOLD){
			return Action.BET;
		}else if(handStrength > CALL_THRESHOLD){
			return Action.CALL;
		}else{
			return Action.FOLD;
		}
	}