コード例 #1
0
        public static Pokerscore CalculateRiverScore(List <Card> cards)
        {
            Pokerscore bestScore = Pokerscore.None;

            foreach (var combination in PokerEnumerator.GetCombinationsOfNMinusTwo(cards, 5))
            {
                Pokerscore score = PokerLogic.Score(new FiveCardHand(combination));

                if (score > bestScore)
                {
                    bestScore = score;
                }
            }

            return(bestScore);
        }
コード例 #2
0
        public void CombinationTestingThreeFromFive()
        {
            int         count = 0;
            List <Card> cards = new List <Card>
            {
                new Card(Rank.Ace, Suit.Diamonds),
                new Card(Rank.Two, Suit.Diamonds),
                new Card(Rank.Three, Suit.Diamonds),
                new Card(Rank.Four, Suit.Diamonds),
                new Card(Rank.Five, Suit.Diamonds)
            };

            foreach (var comb in PokerEnumerator.GetCombinationsOfNMinusTwo(cards, 3))
            {
                count++;
                Assert.AreEqual(comb.Count(), 3);
            }

            Assert.AreEqual(count, 10);
        }
コード例 #3
0
        public void CombinationTestingFiveFromSeven()
        {
            int         count = 0;
            List <Card> cards = new List <Card>
            {
                new Card(Rank.Ace, Suit.Diamonds),
                new Card(Rank.Two, Suit.Diamonds),
                new Card(Rank.Three, Suit.Diamonds),
                new Card(Rank.Four, Suit.Diamonds),
                new Card(Rank.Five, Suit.Diamonds),
                new Card(Rank.Six, Suit.Diamonds),
                new Card(Rank.Seven, Suit.Diamonds),
            };

            foreach (var comb in PokerEnumerator.GetCombinationsOfNMinusTwo(cards, 5))
            {
                Assert.AreEqual(comb.Count(), 5);
                count++;
            }

            Assert.AreEqual(21, count);
        }