示例#1
0
        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);
        }
示例#2
0
 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));
 }