private float TakeOtherPlayerTurn(float foldProb, int bid, int bidScalar, CardGameAI ai) { // other player responds CardGameState nextState = Clone(); nextState.currentBid = bid; nextState.currentBidScalar = bidScalar; nextState.amountInPot += bid; nextState.AdvanceTurn(); TurnResult subResult = nextState.CaclulateOptimalTurn(ai); return(subResult.value * (1 - foldProb) + amountInPot * foldProb); }
public override shootout.TurnResult ChooseCard(IEnumerable <Card> myShowing, IEnumerable <Card> theirShowing, int inPot, int currentBid, int currentBidScalar, int currentTurn) { shootout.CardGameState state = new shootout.CardGameState( CardAIBase.IdealHand(hand.UnplayedCards(), myShowing).Except(myShowing), myShowing, theirShowing, currentBidScalar == 0, currentBidScalar == 0, inPot, Mathf.Max(currentBid, 0), currentBidScalar ); shootout.CardGameState.checkCount = 0; return(state.CaclulateOptimalTurn(ai)); }