示例#1
0
        public void ShowHand()
        {
            if (HasRoyalFlush())
            {
                HandRank = (HandRank)9;
            }
            else if (HasStraightFlush())
            {
                HandRank = (HandRank)8;
            }
            else if (HasFourKind())
            {
                HandRank = (HandRank)7;
            }
            else if (HasFullHouse())
            {
                HandRank = (HandRank)6;
            }
            else if (HasFlush())
            {
                HandRank = (HandRank)5;
            }
            else if (HasStraight())
            {
                HandRank = (HandRank)4;
            }
            else if (HasThreeKind())
            {
                HandRank = (HandRank)3;
            }
            else if (HasTwoPair())
            {
                HandRank = (HandRank)2;
            }
            else if (HasOnePair())
            {
                HandRank = (HandRank)1;
            }

            foreach (Card c in HandContents.OrderByDescending(x => x.Rank).ThenBy(x => x.Suit))
            {
                Console.WriteLine(c.Rank + " of " + c.Suit);
            }
            Console.WriteLine();
            Console.WriteLine("==========Your Hand==========");
            Console.WriteLine();
            Console.WriteLine("          " + HandRank);
        }
示例#2
0
 public bool HasRoyalFlush()
 {
     return(HasStraightFlush() && HandContents.Any(x => x.Rank == Rank.ace));
 }
示例#3
0
 public bool HasFourKind()
 {
     return(HandContents.GroupBy(x => x.Rank).Count() == 2 && HandContents.GroupBy(x => x.Rank).Any(x => x.Count() == 4));
 }
示例#4
0
 public bool HasFullHouse()
 {
     return(HandContents.GroupBy(x => x.Rank).Count() == 2 && HandContents.GroupBy(x => x.Rank).Any(x => x.Count() == 3));
 }
示例#5
0
 public bool HasFlush()
 {
     return(HandContents.Select(x => x.Suit).Distinct().Count() == 1);
 }
示例#6
0
 public bool HasStraight()
 {
     return(HandContents.Select(x => x.Rank).Distinct().Count() == 5 && (int)HandContents.OrderByDescending(x => x.Rank).First().Rank - (int)HandContents.OrderByDescending(x => x.Rank).Last().Rank == 4);
 }
示例#7
0
 public bool HasThreeKind()
 {
     return(HandContents.GroupBy(x => x.Rank).Count() == 3 && HandContents.GroupBy(x => x.Rank).Any(x => x.Count() == 3));
 }
示例#8
0
 public bool HasTwoPair()
 {
     return(HandContents.GroupBy(x => x.Rank).Count() == 3 && HandContents.GroupBy(x => x.Rank).Any(x => x.Count() == 2));
 }
示例#9
0
 public bool HasOnePair()
 {
     return(HandContents.Select(x => x.Rank).Distinct().Count() == 4);
 }