コード例 #1
0
        public static EvaluateResult EvaluateHand(CardHand cardHand)
        {
            List <ICard> cardsCopy = new List <ICard>(cardHand.CardList);

            // how many cards of same rank
            SortedDictionary <CardRank, int> rankCounter = new SortedDictionary <CardRank, int>();

            SortByRank(cardsCopy);
            PopulateRankCounter(cardsCopy, rankCounter);



            if (IsRoyalFlush(cardsCopy))
            {
                return(new EvaluateResult(PokerHand.RoyalFlush, 800, "Royal Flush!"));
            }
            if (IsStraightFlush(cardsCopy))
            {
                return(new EvaluateResult(PokerHand.StraightFlush, 50, "Straigh Flush!"));
            }
            if (IsFourOfAKind(rankCounter))
            {
                return(new EvaluateResult(PokerHand.FourOfAKind, 25, "Four Of A Kind!"));
            }
            if (IsFullHouse(rankCounter))
            {
                return(new EvaluateResult(PokerHand.FullHouse, 9, "Full House!"));
            }
            if (IsFlush(cardsCopy))
            {
                return(new EvaluateResult(PokerHand.Flush, 6, "Flush!"));
            }
            if (IsStraight(cardsCopy))
            {
                return(new EvaluateResult(PokerHand.Straight, 4, "Straight!"));
            }
            if (IsThreeOfAKind(rankCounter))
            {
                return(new EvaluateResult(PokerHand.ThreeOfAKind, 3, "Three Of A Kind!"));
            }
            if (IsTwoPair(rankCounter))
            {
                return(new EvaluateResult(PokerHand.TwoPair, 2, "Two Pair!"));
            }
            if (IsJacksOrBetter(cardsCopy))
            {
                return(new EvaluateResult(PokerHand.JacksOrBetter, 1, "Jacks Or Better!"));
            }

            return(new EvaluateResult(PokerHand.Lost, 0, "You win NOTHING"));
        }
コード例 #2
0
        public GameScene()
        {
            //Initializing variables
            focusables = new List <IFocusable>();
            drawables  = new List <IDrawable>();
            cardHand   = new CardHand()
            {
                Position = new Vector2(3, 3)
            };

            foreach (ICard card in cardHand)
            {
                focusables.Add(card as IFocusable);
                drawables.Add(card as IDrawable);
            }
            drawables.Add(scoreText);

            InitButtons();

            focusables[0].Focus(true);
            Draw();
        }