public Pocket(string s) { if (s.Length != 2 && s.Length != 3) { throw new ArgumentException(); } _text = s; int r1 = StdDeck.RankFromChar(s[0]); int r2 = StdDeck.RankFromChar(s[1]); _c1 = StdDeck.IndexFromRankAndSuit(r1, (int)StdDeck.Suit.Clubs); if (s.Length == 2) { _c2 = StdDeck.IndexFromRankAndSuit(r2, (int)StdDeck.Suit.Diamonds); } else if (s[2] == 's') { _c2 = StdDeck.IndexFromRankAndSuit(r2, (int)StdDeck.Suit.Clubs); } else if (s[2] == 'o') { _c2 = StdDeck.IndexFromRankAndSuit(r2, (int)StdDeck.Suit.Diamonds); } else { throw new ArgumentException(); } }
int Combin(int n) { int deckSize = StdDeck.Descriptor.Size; int suitCount = 4; CardSet[] deck = new CardSet[52]; int i = 0; for (int r = 12; r >= 0; --r) { for (int s = 0; s < 4; ++s) { deck[i++] = StdDeck.Descriptor.CardSets[StdDeck.IndexFromRankAndSuit(r, s)]; } } int counter = 0; CombinRecursive(deck, suitCount, deckSize, n, 0, CardSet.Empty, -1, suitCount - 1, -1, ref counter); return(counter); }