Example #1
0
 private static Hand GetHand(Card[] cardSet)
 {
     return
         (new Hand(CombinationFactory.TryGetRoyalFlush(cardSet))
          .Or(() => new Hand(CombinationFactory.TryGetStraightFlush(cardSet)))
          .Or(() => CreateHand(CombinationFactory.TryGetFourOfAKind(cardSet)))
          .Or(() => new Hand(CombinationFactory.TryGetFullHouse(cardSet)))
          .Or(() => new Hand(CombinationFactory.TryGetFlush(cardSet)))
          .Or(() => new Hand(CombinationFactory.TryGetStraight(cardSet)))
          .Or(() => CreateHand(CombinationFactory.TryGetThreeOfAKind(cardSet)))
          .Or(() => CreateHand(CombinationFactory.TryGetTwoPairs(cardSet)))
          .Or(() => CreateHand(CombinationFactory.TryGetPair(cardSet)))
          .Or(() => new Hand(null, new OddCards(cardSet.Select(c => c.CardNomination).ToArray()))));
 }
Example #2
0
        public void TestStraight([Values(true, false)]bool draw)
        {
            var cf = new CombinationFactory();
            var assert = draw
                ? (Action<object>)(Assert.IsNull)
                : o => Assert.IsNotNull(o);

            assert(cf.TryGetStraight(
                new[]
                    {
                        new Card(new MajorCardNomination(MajorCardType.Ace), Clubs),
                        new Card(new MajorCardNomination(MajorCardType.King), Clubs),
                        new Card(new MajorCardNomination(MajorCardType.Queen), Clubs),
                        new Card(new MajorCardNomination(MajorCardType.Jack), Clubs),
                        new Card(new MinorCardNomination(draw? 9 : 10), Suit.Diamonds),
                    }));
        }
Example #3
0
        public void TestStraight([Values(true, false)] bool draw)
        {
            var cf     = new CombinationFactory();
            var assert = draw
                                ? (Action <object>)(Assert.IsNull)
                                : o => Assert.IsNotNull(o);

            assert(cf.TryGetStraight(
                       new[]
            {
                new Card(new MajorCardNomination(MajorCardType.Ace), Clubs),
                new Card(new MajorCardNomination(MajorCardType.King), Clubs),
                new Card(new MajorCardNomination(MajorCardType.Queen), Clubs),
                new Card(new MajorCardNomination(MajorCardType.Jack), Clubs),
                new Card(new MinorCardNomination(draw? 9 : 10), Suit.Diamonds),
            }));
        }