Пример #1
0
 public Player()
 {
     HoldemHand = new HoldemHand();
     Money      = 100;
 }
        public Odds CalculateOdds(PokerHand SharedCards)
        {
            List <HoldemHand> PossibleHandsOfOpponent = new List <HoldemHand>();
            PokerHand         BestPokerHand           = new PokerHand();

            PokerHand[] BestPokerHandArray = new PokerHand[990];
            int         NumWins = 0, NumDraws = 0, NumLoses = 0;
            double      ChancesOfWinning = 0.0, ChancesOfLosing = 0.0, ChancesOfDrawing = 0.0;
            int         ResultOfComparison;

            for (int i = 0; i < 990; ++i)
            {
                BestPokerHandArray[i] = new PokerHand();
            }

            Deck.Remove(SharedCards.Hand[0]);
            Deck.Remove(SharedCards.Hand[1]);
            Deck.Remove(SharedCards.Hand[2]);
            Deck.Remove(SharedCards.Hand[3]);
            Deck.Remove(SharedCards.Hand[4]);

            Deck.Remove(Hand[0]);
            Deck.Remove(Hand[1]);

            for (int i = 0; i < 45; ++i)
            {
                for (int j = i + 1; j < 45; ++j)
                {
                    HoldemHand TmpHoldemHand = new HoldemHand();
                    TmpHoldemHand.Hand[0] = Deck.ElementAt(i);
                    TmpHoldemHand.Hand[1] = Deck.ElementAt(j);
                    PossibleHandsOfOpponent.Insert(0, TmpHoldemHand);
                }
            }

            BestPokerHand = FindBestPokerHand(SharedCards);

            for (int i = 0; i < 990; ++i)
            {
                BestPokerHandArray[i] = PossibleHandsOfOpponent.ElementAt(i).FindBestPokerHand(SharedCards);
            }

            for (int i = 0; i < 990; ++i)
            {
                ResultOfComparison = BestPokerHand.CompareTo(BestPokerHandArray[i]);

                if (ResultOfComparison == 1)
                {
                    ++NumWins;
                }

                else if (ResultOfComparison == -1)
                {
                    ++NumLoses;
                }

                else
                {
                    ++NumDraws;
                }
            }

            Deck.Insert(0, SharedCards.Hand[0]);
            Deck.Insert(0, SharedCards.Hand[1]);
            Deck.Insert(0, SharedCards.Hand[2]);
            Deck.Insert(0, SharedCards.Hand[3]);
            Deck.Insert(0, SharedCards.Hand[4]);

            Deck.Insert(0, Hand[0]);
            Deck.Insert(0, Hand[1]);

            ChancesOfWinning = (NumWins / 990.0) * 100.0;
            ChancesOfLosing  = (NumLoses / 990.0) * 100.0;
            ChancesOfDrawing = (NumDraws / 990.0) * 100.0;

            return(new Odds(ChancesOfWinning, ChancesOfLosing, ChancesOfDrawing));
        }