예제 #1
0
        public NeuralAIv3(AIRandomControl aiRandomControl)
            : base(aiRandomControl)
        {
            aiType = AIGeneration.NeuralV3;

            specificUpdateKey = new RequestedInfoKey(false);

            specificUpdateKey.SetInfoTypeRequired(InfoType.WR_CardsOnlyWinPercentage);

            specificUpdateKey.SetInfoTypeRequired(InfoType.GP_NumActivePlayers_Byte);
            specificUpdateKey.SetInfoTypeRequired(InfoType.GP_NumUnactedPlayers_Byte);
            specificUpdateKey.SetInfoTypeRequired(InfoType.GP_NumTableSeats_Byte);

            specificUpdateKey.SetInfoTypeRequired(InfoType.GP_GameStage_Byte);

            specificUpdateKey.SetInfoTypeRequired(InfoType.BP_MinimumPlayAmount_Decimal);
            specificUpdateKey.SetInfoTypeRequired(InfoType.BP_PlayerBetAmountCurrentRound_Decimal);

            specificUpdateKey.SetInfoTypeRequired(InfoType.PAP_RaiseToCallAmount_Amount);
            specificUpdateKey.SetInfoTypeRequired(InfoType.PAP_RaiseToStealAmount_Amount);
            specificUpdateKey.SetInfoTypeRequired(InfoType.PAP_RaiseToBotCheck_Prob);
            specificUpdateKey.SetInfoTypeRequired(InfoType.PAP_RaiseToBotCall_Prob);
            specificUpdateKey.SetInfoTypeRequired(InfoType.PAP_FoldToBotCall_Prob);
            specificUpdateKey.SetInfoTypeRequired(InfoType.PAP_RaiseToStealSuccess_Prob);

            specificUpdateKey.SetInfoTypeRequired(InfoType.BP_TotalNumRaises_Byte);
            specificUpdateKey.SetInfoTypeRequired(InfoType.BP_TotalNumCalls_Byte);
            specificUpdateKey.SetInfoTypeRequired(InfoType.BP_TotalNumChecks_Byte);

            specificUpdateKey.SetInfoTypeRequired(InfoType.BP_ImmediatePotOdds_Double);

            specificUpdateKey.SetInfoTypeRequired(InfoType.AP_AvgScaledOppRaiseFreq_Double);
            specificUpdateKey.SetInfoTypeRequired(InfoType.AP_AvgScaledOppCallFreq_Double);
            specificUpdateKey.SetInfoTypeRequired(InfoType.AP_AvgScaledOppPreFlopPlayFreq_Double);
        }
예제 #2
0
        public NeuralAIv6(AIRandomControl aiRandomControl)
            : base(aiRandomControl)
        {
            aiType = AIGeneration.NeuralV6;

            //Setup this AI's specific update key
            specificUpdateKey = new RequestedInfoKey(false);

            specificUpdateKey.SetInfoTypeRequired(InfoType.GP_GameStage_Byte);

            specificUpdateKey.SetInfoTypeRequired(InfoType.CP_HoleCardsAAPair_Bool);
            specificUpdateKey.SetInfoTypeRequired(InfoType.CP_HoleCardsKKPair_Bool);
            specificUpdateKey.SetInfoTypeRequired(InfoType.CP_HoleCardsAK_Bool);
            specificUpdateKey.SetInfoTypeRequired(InfoType.CP_HoleCardsOtherHighPair_Bool);
            specificUpdateKey.SetInfoTypeRequired(InfoType.CP_HoleCardsOtherLowPair_Bool);
            specificUpdateKey.SetInfoTypeRequired(InfoType.CP_HoleCardsTroubleHand_Bool);
            specificUpdateKey.SetInfoTypeRequired(InfoType.CP_HoleCardsMidConnector_Bool);
            specificUpdateKey.SetInfoTypeRequired(InfoType.CP_HoleCardsLowConnector_Bool);
            specificUpdateKey.SetInfoTypeRequired(InfoType.CP_HoleCardsSuited_Bool);

            specificUpdateKey.SetInfoTypeRequired(InfoType.GP_DealerDistance_Byte);
            specificUpdateKey.SetInfoTypeRequired(InfoType.GP_NumActivePlayers_Byte);
            specificUpdateKey.SetInfoTypeRequired(InfoType.GP_NumUnactedPlayers_Byte);

            specificUpdateKey.SetInfoTypeRequired(InfoType.BP_PlayerMoneyInPot_Decimal);
            specificUpdateKey.SetInfoTypeRequired(InfoType.BP_PlayerHandStartingStackAmount_Decimal);
            specificUpdateKey.SetInfoTypeRequired(InfoType.BP_PlayerBetAmountCurrentRound_Decimal);
            specificUpdateKey.SetInfoTypeRequired(InfoType.BP_TotalPotAmount_Decimal);
            specificUpdateKey.SetInfoTypeRequired(InfoType.BP_MinimumPlayAmount_Decimal);
            specificUpdateKey.SetInfoTypeRequired(InfoType.BP_LastAdditionalRaiseAmount);

            specificUpdateKey.SetInfoTypeRequired(InfoType.WR_ProbOpponentHasBetterWRFIXED);
            specificUpdateKey.SetInfoTypeRequired(InfoType.WR_RaiseToCallAmount);
            specificUpdateKey.SetInfoTypeRequired(InfoType.WR_RaiseToStealAmount);
            specificUpdateKey.SetInfoTypeRequired(InfoType.WR_RaiseToCallStealSuccessProb);
            specificUpdateKey.SetInfoTypeRequired(InfoType.WR_RaiseToStealSuccessProb);

            //specificUpdateKey.SetInfoTypeRequired(InfoType.PAP_RaiseToStealSuccess_Prob);
            //specificUpdateKey.SetInfoTypeRequired(InfoType.PAP_RaiseToCallAmount_Amount);
            //specificUpdateKey.SetInfoTypeRequired(InfoType.PAP_RaiseToStealAmount_Amount);

            specificUpdateKey.SetInfoTypeRequired(InfoType.AP_AvgLiveOppPreFlopPlayFreq_Double);
            specificUpdateKey.SetInfoTypeRequired(InfoType.AP_AvgLiveOppPostFlopPlayFreq_Double);
            specificUpdateKey.SetInfoTypeRequired(InfoType.AP_AvgLiveOppCurrentRoundAggr_Double);
            specificUpdateKey.SetInfoTypeRequired(InfoType.AP_AvgLiveOppCurrentRoundAggrAcc_Double);

            ////The following mostly used by PAP
            //specificUpdateKey.SetInfoTypeRequired(InfoType.GP_NumTableSeats_Byte);
            //specificUpdateKey.SetInfoTypeRequired(InfoType.CP_FlushPossible_Bool);
            //specificUpdateKey.SetInfoTypeRequired(InfoType.CP_StraightPossible_Bool);
            //specificUpdateKey.SetInfoTypeRequired(InfoType.CP_AOnBoard_Bool);
            //specificUpdateKey.SetInfoTypeRequired(InfoType.CP_KOnBoard_Bool);
            //specificUpdateKey.SetInfoTypeRequired(InfoType.CP_AKQToBoardRatio_Real);
            //specificUpdateKey.SetInfoTypeRequired(InfoType.BP_LastAdditionalRaiseAmount);
            //specificUpdateKey.SetInfoTypeRequired(InfoType.BP_BetsToCall_Byte);
        }
예제 #3
0
        public NeuralAIv2(AIRandomControl aiRandomControl)
            : base(aiRandomControl)
        {
            aiType = AIGeneration.NeuralV2;

            specificUpdateKey = new RequestedInfoKey(false);

            specificUpdateKey.SetInfoTypeRequired(InfoType.BP_MinimumPlayAmount_Decimal);
            specificUpdateKey.SetInfoTypeRequired(InfoType.BP_PlayerBetAmountCurrentRound_Decimal);
            specificUpdateKey.SetInfoTypeRequired(InfoType.PAP_RaiseToCallAmount_Amount);
            specificUpdateKey.SetInfoTypeRequired(InfoType.WR_CardsOnlyWinPercentage);
        }
예제 #4
0
        public NeuralAIv4(AIRandomControl aiRandomControl)
            : base(aiRandomControl)
        {
            aiType = AIGeneration.NeuralV4;

            //Setup this AI's specific update key
            specificUpdateKey = new RequestedInfoKey(false);
            specificUpdateKey.SetInfoTypeRequired(InfoType.CP_HoleCardsMatchedPlayability);
            specificUpdateKey.SetInfoTypeRequired(InfoType.GP_GameStage_Byte);
            specificUpdateKey.SetInfoTypeRequired(InfoType.GP_DealerDistance_Byte);
            specificUpdateKey.SetInfoTypeRequired(InfoType.GP_NumActivePlayers_Byte);
            specificUpdateKey.SetInfoTypeRequired(InfoType.GP_NumUnactedPlayers_Byte);
            specificUpdateKey.SetInfoTypeRequired(InfoType.BP_ImmediatePotOdds_Double);
            specificUpdateKey.SetInfoTypeRequired(InfoType.BP_PlayerMoneyInPot_Decimal);
            specificUpdateKey.SetInfoTypeRequired(InfoType.BP_PlayerHandStartingStackAmount_Decimal);
            specificUpdateKey.SetInfoTypeRequired(InfoType.BP_TotalPotAmount_Decimal);
            specificUpdateKey.SetInfoTypeRequired(InfoType.BP_TotalNumRaises_Byte);
            specificUpdateKey.SetInfoTypeRequired(InfoType.BP_TotalNumCalls_Byte);
            specificUpdateKey.SetInfoTypeRequired(InfoType.BP_TotalNumChecks_Byte);
            specificUpdateKey.SetInfoTypeRequired(InfoType.BP_MinimumPlayAmount_Decimal);
            specificUpdateKey.SetInfoTypeRequired(InfoType.BP_PlayerBetAmountCurrentRound_Decimal);
            specificUpdateKey.SetInfoTypeRequired(InfoType.BP_ScaledCallAmount_Double);

            specificUpdateKey.SetInfoTypeRequired(InfoType.WR_ProbOpponentHasBetterWRFIXED);
            specificUpdateKey.SetInfoTypeRequired(InfoType.WR_CardsOnlyWinPercentage);
            specificUpdateKey.SetInfoTypeRequired(InfoType.WR_CardsOnlyWinPercentageIndex);

            specificUpdateKey.SetInfoTypeRequired(InfoType.PAP_RaiseToStealSuccess_Prob);
            //specificUpdateKey.SetInfoTypeRequired(InfoType.AP_AvgScaledOppRaiseFreq_Double);
            //specificUpdateKey.SetInfoTypeRequired(InfoType.AP_AvgScaledOppCallFreq_Double);
            //specificUpdateKey.SetInfoTypeRequired(InfoType.AP_AvgScaledOppPreFlopPlayFreq_Double);
            specificUpdateKey.SetInfoTypeRequired(InfoType.BP_PlayerBetAmountCurrentRound_Decimal);
            specificUpdateKey.SetInfoTypeRequired(InfoType.PAP_RaiseToCallAmount_Amount);
            specificUpdateKey.SetInfoTypeRequired(InfoType.PAP_RaiseToStealAmount_Amount);

            //The following mostly used by PAP
            //specificUpdateKey.SetInfoTypeRequired(InfoType.GP_NumTableSeats_Byte);
            //specificUpdateKey.SetInfoTypeRequired(InfoType.CP_FlushPossible_Bool);
            //specificUpdateKey.SetInfoTypeRequired(InfoType.CP_StraightPossible_Bool);
            //specificUpdateKey.SetInfoTypeRequired(InfoType.CP_AOnBoard_Bool);
            //specificUpdateKey.SetInfoTypeRequired(InfoType.CP_KOnBoard_Bool);
            //specificUpdateKey.SetInfoTypeRequired(InfoType.CP_AKQToBoardRatio_Real);
            //specificUpdateKey.SetInfoTypeRequired(InfoType.BP_LastAdditionalRaiseAmount);
            //specificUpdateKey.SetInfoTypeRequired(InfoType.BP_BetsToCall_Byte);

            //The fixing metrics
            specificUpdateKey.SetInfoTypeRequired(InfoType.WR_ProbOpponentHasBetterWRFIXED);
            specificUpdateKey.SetInfoTypeRequired(InfoType.WR_RaiseToCallAmount);
            specificUpdateKey.SetInfoTypeRequired(InfoType.WR_RaiseToStealAmount);
            specificUpdateKey.SetInfoTypeRequired(InfoType.WR_RaiseToCallStealSuccessProb);
            specificUpdateKey.SetInfoTypeRequired(InfoType.WR_RaiseToStealSuccessProb);
        }
예제 #5
0
        public NeuralAIv7(AIRandomControl aiRandomControl)
            : base(aiRandomControl)
        {
            aiType = AIGeneration.NeuralV7;

            #region preflop update key
            //Setup this AI's specific update key
            specificUpdateKey = new RequestedInfoKey(false);

            specificUpdateKey.SetInfoTypeRequired(InfoType.GP_GameStage_Byte);

            specificUpdateKey.SetInfoTypeRequired(InfoType.CP_HoleCardsAAPair_Bool);
            specificUpdateKey.SetInfoTypeRequired(InfoType.CP_HoleCardsKKPair_Bool);
            specificUpdateKey.SetInfoTypeRequired(InfoType.CP_HoleCardsAK_Bool);
            specificUpdateKey.SetInfoTypeRequired(InfoType.CP_HoleCardsOtherHighPair_Bool);
            specificUpdateKey.SetInfoTypeRequired(InfoType.CP_HoleCardsOtherLowPair_Bool);
            specificUpdateKey.SetInfoTypeRequired(InfoType.CP_HoleCardsTroubleHand_Bool);
            specificUpdateKey.SetInfoTypeRequired(InfoType.CP_HoleCardsMidConnector_Bool);
            specificUpdateKey.SetInfoTypeRequired(InfoType.CP_HoleCardsLowConnector_Bool);
            specificUpdateKey.SetInfoTypeRequired(InfoType.CP_HoleCardsSuited_Bool);

            specificUpdateKey.SetInfoTypeRequired(InfoType.GP_DealerDistance_Byte);
            specificUpdateKey.SetInfoTypeRequired(InfoType.GP_NumActivePlayers_Byte);
            specificUpdateKey.SetInfoTypeRequired(InfoType.GP_NumUnactedPlayers_Byte);

            specificUpdateKey.SetInfoTypeRequired(InfoType.BP_PlayerMoneyInPot_Decimal);
            specificUpdateKey.SetInfoTypeRequired(InfoType.BP_PlayerHandStartingStackAmount_Decimal);
            specificUpdateKey.SetInfoTypeRequired(InfoType.BP_PlayerBetAmountCurrentRound_Decimal);
            specificUpdateKey.SetInfoTypeRequired(InfoType.BP_TotalPotAmount_Decimal);
            specificUpdateKey.SetInfoTypeRequired(InfoType.BP_MinimumPlayAmount_Decimal);

            specificUpdateKey.SetInfoTypeRequired(InfoType.WR_ProbOpponentHasBetterWRFIXED);
            specificUpdateKey.SetInfoTypeRequired(InfoType.WR_RaiseToCallAmount);
            specificUpdateKey.SetInfoTypeRequired(InfoType.WR_RaiseToStealAmount);
            specificUpdateKey.SetInfoTypeRequired(InfoType.WR_RaiseToCallStealSuccessProb);
            specificUpdateKey.SetInfoTypeRequired(InfoType.WR_RaiseToStealSuccessProb);

            specificUpdateKey.SetInfoTypeRequired(InfoType.AP_AvgLiveOppPreFlopPlayFreq_Double);
            specificUpdateKey.SetInfoTypeRequired(InfoType.AP_AvgLiveOppPostFlopPlayFreq_Double);
            specificUpdateKey.SetInfoTypeRequired(InfoType.AP_AvgLiveOppCurrentRoundAggr_Double);
            specificUpdateKey.SetInfoTypeRequired(InfoType.AP_AvgLiveOppCurrentRoundAggrAcc_Double);
            #endregion

            #region postflop update key
            postFlopUpdateKey = new RequestedInfoKey(false);

            postFlopUpdateKey.SetInfoTypeRequired(InfoType.GP_GameStage_Byte);

            postFlopUpdateKey.SetInfoTypeRequired(InfoType.GP_DealerDistance_Byte);
            postFlopUpdateKey.SetInfoTypeRequired(InfoType.GP_NumActivePlayers_Byte);
            postFlopUpdateKey.SetInfoTypeRequired(InfoType.GP_NumUnactedPlayers_Byte);

            postFlopUpdateKey.SetInfoTypeRequired(InfoType.BP_PlayerMoneyInPot_Decimal);
            postFlopUpdateKey.SetInfoTypeRequired(InfoType.BP_PlayerHandStartingStackAmount_Decimal);
            postFlopUpdateKey.SetInfoTypeRequired(InfoType.BP_PlayerBetAmountCurrentRound_Decimal);
            postFlopUpdateKey.SetInfoTypeRequired(InfoType.BP_TotalPotAmount_Decimal);
            postFlopUpdateKey.SetInfoTypeRequired(InfoType.BP_MinimumPlayAmount_Decimal);

            postFlopUpdateKey.SetInfoTypeRequired(InfoType.WR_ProbOpponentHasBetterWRFIXED);
            postFlopUpdateKey.SetInfoTypeRequired(InfoType.WR_RaiseToCallAmount);
            postFlopUpdateKey.SetInfoTypeRequired(InfoType.WR_RaiseToStealAmount);
            postFlopUpdateKey.SetInfoTypeRequired(InfoType.WR_RaiseToCallStealSuccessProb);
            postFlopUpdateKey.SetInfoTypeRequired(InfoType.WR_RaiseToStealSuccessProb);

            postFlopUpdateKey.SetInfoTypeRequired(InfoType.AP_AvgLiveOppPreFlopPlayFreq_Double);
            postFlopUpdateKey.SetInfoTypeRequired(InfoType.AP_AvgLiveOppPostFlopPlayFreq_Double);
            postFlopUpdateKey.SetInfoTypeRequired(InfoType.AP_AvgLiveOppCurrentRoundAggr_Double);
            postFlopUpdateKey.SetInfoTypeRequired(InfoType.AP_AvgLiveOppCurrentRoundAggrAcc_Double);
            #endregion
        }
예제 #6
0
        public NeuralAIv1(AIRandomControl aiRandomControl)
            : base(aiRandomControl)
        {
            aiType = AIGeneration.NeuralV1;

            specificUpdateKey = new RequestedInfoKey(false);

            specificUpdateKey.SetInfoTypeRequired(InfoType.CP_HoleCardsAAPair_Bool);
            specificUpdateKey.SetInfoTypeRequired(InfoType.CP_HoleCardsKKPair_Bool);
            specificUpdateKey.SetInfoTypeRequired(InfoType.CP_HoleCardsAK_Bool);
            specificUpdateKey.SetInfoTypeRequired(InfoType.CP_HoleCardsOtherHighPair_Bool);
            specificUpdateKey.SetInfoTypeRequired(InfoType.CP_HoleCardsOtherLowPair_Bool);
            specificUpdateKey.SetInfoTypeRequired(InfoType.CP_HoleCardsTroubleHand_Bool);
            specificUpdateKey.SetInfoTypeRequired(InfoType.CP_HoleCardsMidConnector_Bool);
            specificUpdateKey.SetInfoTypeRequired(InfoType.CP_HoleCardsLowConnector_Bool);
            specificUpdateKey.SetInfoTypeRequired(InfoType.CP_HoleCardsSuited_Bool);
            specificUpdateKey.SetInfoTypeRequired(InfoType.CP_HoleCardsFlushDraw_Bool);

            specificUpdateKey.SetInfoTypeRequired(InfoType.CP_HoleCardsOuterStraightDrawWithHC_Bool);
            specificUpdateKey.SetInfoTypeRequired(InfoType.CP_HoleCardsInnerStraightDrawWithHC_Bool);
            specificUpdateKey.SetInfoTypeRequired(InfoType.CP_HoleCardsTopOrTwoPair_Bool);
            specificUpdateKey.SetInfoTypeRequired(InfoType.CP_HoleCardsAOrKInHand_Bool);
            specificUpdateKey.SetInfoTypeRequired(InfoType.CP_HoleCards3KindOrBetterMadeWithHC_Bool);
            specificUpdateKey.SetInfoTypeRequired(InfoType.CP_AOnBoard_Bool);
            specificUpdateKey.SetInfoTypeRequired(InfoType.CP_KOnBoard_Bool);
            specificUpdateKey.SetInfoTypeRequired(InfoType.CP_AKQToBoardRatio_Real);
            specificUpdateKey.SetInfoTypeRequired(InfoType.CP_FlushPossible_Bool);
            specificUpdateKey.SetInfoTypeRequired(InfoType.CP_StraightPossible_Bool);

            specificUpdateKey.SetInfoTypeRequired(InfoType.CP_TableStraightDraw_Bool);
            specificUpdateKey.SetInfoTypeRequired(InfoType.CP_TableFlushDraw_Bool);
            specificUpdateKey.SetInfoTypeRequired(InfoType.GP_NumPlayersDealtIn_Byte);
            specificUpdateKey.SetInfoTypeRequired(InfoType.GP_NumTableSeats_Byte);
            specificUpdateKey.SetInfoTypeRequired(InfoType.GP_NumActivePlayers_Byte);
            specificUpdateKey.SetInfoTypeRequired(InfoType.GP_NumUnactedPlayers_Byte);
            specificUpdateKey.SetInfoTypeRequired(InfoType.GP_GameStage_Byte);
            specificUpdateKey.SetInfoTypeRequired(InfoType.GP_DealerDistance_Byte);
            specificUpdateKey.SetInfoTypeRequired(InfoType.BP_ImmediatePotOdds_Double);
            specificUpdateKey.SetInfoTypeRequired(InfoType.BP_PlayerMoneyInPot_Decimal);

            specificUpdateKey.SetInfoTypeRequired(InfoType.BP_PlayerHandStartingStackAmount_Decimal);
            specificUpdateKey.SetInfoTypeRequired(InfoType.BP_TotalPotAmount_Decimal);
            specificUpdateKey.SetInfoTypeRequired(InfoType.BP_TotalNumRaises_Byte);
            specificUpdateKey.SetInfoTypeRequired(InfoType.BP_TotalNumCalls_Byte);
            specificUpdateKey.SetInfoTypeRequired(InfoType.BP_TotalNumChecks_Byte);
            specificUpdateKey.SetInfoTypeRequired(InfoType.BP_LastRoundBetsToCall_Byte);
            specificUpdateKey.SetInfoTypeRequired(InfoType.BP_CurrentCallAmountLarger4BB);
            specificUpdateKey.SetInfoTypeRequired(InfoType.BP_RaisedLastRound_Bool);
            specificUpdateKey.SetInfoTypeRequired(InfoType.BP_PlayerLastAction_Short);
            specificUpdateKey.SetInfoTypeRequired(InfoType.WR_CardsOnlyWinPercentage);

            specificUpdateKey.SetInfoTypeRequired(InfoType.WR_CardsOnlyOpponentWinPercentage);
            specificUpdateKey.SetInfoTypeRequired(InfoType.WR_CardsOnlyWinPercentageLastRoundChange);
            specificUpdateKey.SetInfoTypeRequired(InfoType.WR_CardsOnlyOpponentWinPercentage);
            specificUpdateKey.SetInfoTypeRequired(InfoType.PAP_RaiseToBotCheck_Prob);
            specificUpdateKey.SetInfoTypeRequired(InfoType.PAP_RaiseToBotCall_Prob);
            specificUpdateKey.SetInfoTypeRequired(InfoType.PAP_FoldToBotCall_Prob);
            specificUpdateKey.SetInfoTypeRequired(InfoType.PAP_RaiseToStealSuccess_Prob);
            specificUpdateKey.SetInfoTypeRequired(InfoType.PAP_RaiseToStealAmount_Amount);
            specificUpdateKey.SetInfoTypeRequired(InfoType.PAP_RaiseToCallAmount_Amount);

            specificUpdateKey.SetInfoTypeRequired(InfoType.BP_MinimumPlayAmount_Decimal);
            specificUpdateKey.SetInfoTypeRequired(InfoType.BP_PlayerBetAmountCurrentRound_Decimal);
            //specificUpdateKey.SetInfoTypeRequired(InfoType.BP_MinimumPlayAmount_Decimal);
            //specificUpdateKey.SetInfoTypeRequired(InfoType.BP_MinimumPlayAmount_Decimal);

            //specificUpdateKey.SetInfoTypeRequired(InfoType.BP_MinimumPlayAmount_Decimal);
            //specificUpdateKey.SetInfoTypeRequired(InfoType.BP_MinimumPlayAmount_Decimal);
            //specificUpdateKey.SetInfoTypeRequired(InfoType.BP_MinimumPlayAmount_Decimal);
        }