getMinNextRaise(),
player.getStack()-(getLargestBet() - player.getBet())));
}
public final int getUpperRaiseBound(PlayerId playerId) {
PlayerState player = getPlayer(playerId);
PlayerState tempPlayer;
PlayerId tempId = playerId;
int maxOtherBettableChips=0;
loop: do{
//TODO fix infinite loop on double BB
tempPlayer = getNextActivePlayerAfter(tempId);
if(tempPlayer==null){
break loop;
}
tempId = tempPlayer.getPlayerId();
if(!tempPlayer.getPlayerId().equals(playerId)){
maxOtherBettableChips = Math.max(maxOtherBettableChips, tempPlayer.getBet()+tempPlayer.getStack());
}else{
break loop;
}
}while(true);
int betableChips = Math.min(player.getStack()+player.getBet(),maxOtherBettableChips);