override public int GetMadeNumericRank() { DuplicateRankCounter tDuplicateRankCounter = GetDuplicateCards(0, 3); // a 5-card hand. will set all card masks true in GetMade2NumericRank return(tDuplicateRankCounter.duplicateCardNumericRank); }
override public int GetMade2NumericRank() { // find the first set of 3 then exclude that rank from the following search for a pair. DuplicateRankCounter tThreeOfAKind = GetDuplicateCards(0, 3); // a 5-card hand SetAllUsedCardMaskTrue(); return(GetDuplicateCards(0, 2, tThreeOfAKind.duplicateCardNumericRank).duplicateCardNumericRank); }
override public int GetMadeNumericRank() { DuplicateRankCounter tDuplicateRankCounter = GetDuplicateCards(0, 2); if (tDuplicateRankCounter.duplicateCardNumericRank >= 0) { _usedCardMask[tDuplicateRankCounter.duplicateCardLastIndex - 1] = true; _usedCardMask[tDuplicateRankCounter.duplicateCardLastIndex] = true; } return(tDuplicateRankCounter.duplicateCardNumericRank); }
override public int GetMade2NumericRank() { // Find the first pair and its index then add 2 to pick the index to start searching for the second pair int tStartIndex = GetDuplicateCards(0, 2).duplicateCardLastIndex + 1; DuplicateRankCounter tDuplicateRankCounter = GetDuplicateCards(tStartIndex, 2); if (tDuplicateRankCounter.duplicateCardNumericRank >= 0) { _usedCardMask[tDuplicateRankCounter.duplicateCardLastIndex - 1] = true; _usedCardMask[tDuplicateRankCounter.duplicateCardLastIndex] = true; } return(tDuplicateRankCounter.duplicateCardNumericRank); }
// pExcludeRank is used for preventing the full house check from using the set of 3. protected DuplicateRankCounter GetDuplicateCards(int pStartIndex, int pLength, int pExcludeRank = -1) { int[] tRankCounter = new int[15] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; DuplicateRankCounter tDuplicateRankCounter = new DuplicateRankCounter(); for (int i = pStartIndex; i < 5; i++) { int tNumericRank = _cards[i].NumericRank; tRankCounter[tNumericRank]++; if (tRankCounter[tNumericRank] == pLength && tNumericRank != pExcludeRank) { tDuplicateRankCounter.duplicateCardNumericRank = tNumericRank; tDuplicateRankCounter.duplicateCardCount = tRankCounter[tNumericRank]; tDuplicateRankCounter.duplicateCardLastIndex = i; return(tDuplicateRankCounter); } ; } return(tDuplicateRankCounter); }