示例#1
0
        public OddCards(CardNomination[] cardNominations)
        {
            var nominations = cardNominations.OrderByDescending(n => n).ToArray();

            MainCard = nominations.First();
            var odd = nominations.Skip(1).ToArray();

            Odd = odd.Any()? new OddCards(odd) : null;
        }
示例#2
0
        private static Tuple <CardNomination, Card[]> GetNominationWithLength(int length, Card[] cards, CardNomination exclude = null)
        {
            var group = (exclude == null
                                                                ? cards
                                                                : cards.Where(c => c.CardNomination != exclude))
                        .GroupBy(c => c.CardNomination).FirstOrDefault(g => g.Count() == length);

            var card = group == null? null : group.FirstOrDefault();

            return(card == null
                                ? null
                                : new Tuple <CardNomination, Card[]>(card.CardNomination, cards.Where(c => c.CardNomination != card.CardNomination).ToArray()));
        }
示例#3
0
 public TwoPairs(CardNomination[] cardNominations)
     : base(2, cardNominations.Max())
 {
     MinorCardNomination = cardNominations.Min();
 }
示例#4
0
 public Pair(CardNomination cardNomination) : this(1, cardNomination)
 {
 }
示例#5
0
 protected Pair(int value, CardNomination mainCard) : base(value, mainCard)
 {
 }
示例#6
0
 public StraightFlush(CardNomination mainCard)
     : base(8, mainCard)
 {
 }
示例#7
0
 public FourOfAKind(CardNomination mainCard) : base(7, mainCard)
 {
 }
示例#8
0
 public FullHouse(CardNomination threeCardNomination, CardNomination pairCardNomination)
     : base(6, threeCardNomination)
 {
     PairCardNomination = pairCardNomination;
 }
示例#9
0
 public Combination(int value, CardNomination mainCard)
 {
     Value    = value;
     MainCard = mainCard;
 }
示例#10
0
 public Straight(CardNomination cardNomination) : this(4, cardNomination)
 {
 }
示例#11
0
 protected Straight(int value, CardNomination mainCard) : base(value, mainCard)
 {
 }
示例#12
0
 public ThreeOfAKind(CardNomination mainCard)
     : base(3, mainCard)
 {
 }