示例#1
0
        //---------------------------------------------------------------------
        public List <Card> GetCardsWithHundredHandRankType(HandRankTypeTexasH hand_ranktype)
        {
            List <Card> list_cards = new List <Card>();

            switch (hand_ranktype)
            {
            case HandRankTypeTexasH.HighCard:
                list_cards = _getHighCard();
                break;

            case HandRankTypeTexasH.Pair:
                list_cards = _getPair();
                break;

            case HandRankTypeTexasH.TwoPairs:
                list_cards = _getTwoPair();
                break;

            case HandRankTypeTexasH.ThreeOfAKind:
                list_cards = _getThreeOfAKind(false);
                break;

            case HandRankTypeTexasH.Straight:
                list_cards = _getStraight();
                break;

            case HandRankTypeTexasH.Flush:
                list_cards = _getFlush();
                break;

            case HandRankTypeTexasH.FullHouse:
                list_cards = _getFullHouse();
                break;

            case HandRankTypeTexasH.FourOfAKind:
                list_cards = _getFourOfAKind();
                break;

            case HandRankTypeTexasH.StraightFlush:
                list_cards = _getStraightFlush();
                break;

            case HandRankTypeTexasH.RoyalFlush:
                list_cards = _getRoyalFlush();
                break;

            default:
                break;
            }

            return(list_cards);
        }
        //---------------------------------------------------------------------
        // 百人桌牌型
        public static HandRankTypeTexasH GetHandRankHTexas(List <Card> cards)
        {
            HandRankTypeTexasH rank_type = HandRankTypeTexasH.HighCard;
            var hand_type = HandEvaluator.GetBestHand(cards).RankType;

            if (hand_type == HandRankTypeTexas.StraightFlush)
            {
                cards.Sort((card1, card2) =>
                {
                    return(-((int)card1.Type).CompareTo((int)card2.Type));
                });

                if (cards[0].Type == (byte)CardType.Ace && cards[1].Type == (byte)CardType.King)
                {
                    rank_type = HandRankTypeTexasH.RoyalFlush;
                }
                else
                {
                    rank_type = HandRankTypeTexasH.StraightFlush;
                }
            }
            else
            {
                foreach (HandRankTypeTexasH i in Enum.GetValues(typeof(HandRankTypeTexasH)))
                {
                    HandRankTypeTexasH type = i;
                    if (type.ToString().Equals(hand_type.ToString()))
                    {
                        rank_type = type;
                        break;
                    }
                }
            }

            return(rank_type);
        }
示例#3
0
 //---------------------------------------------------------------------
 public static int ParseHandRankTypeTexasHToNum(HandRankTypeTexasH rank)
 {
     return((int)rank);
 }
示例#4
0
 //---------------------------------------------------------------------
 public static string ParseHandRankTypeTexasHToStr(HandRankTypeTexasH rank)
 {
     return(rank.ToString());
 }