Exemplo n.º 1
0
 /// <summary>
 /// Poker Game Constructor
 /// </summary>
 public PokerGame()
 {
     base.Name                 = "Poker";
     this._players             = new List <PokerPlayer>();
     this._winners             = new List <PokerPlayer>();
     this._winningHandCategory = Enums.HandCategory.None;
     this._deck                = new Deck();
     this.Reset();
 }
Exemplo n.º 2
0
        /// <summary>
        /// Routing of winner(s) evaluation
        /// </summary>
        /// <param name="players"></param>
        /// <param name="winningHandCategory"></param>
        /// <returns></returns>
        public static List <PokerPlayer> EvaluateWinners(List <PokerPlayer> players, Enums.HandCategory winningHandCategory)
        {
            var results = new List <PokerPlayer>();

            switch (winningHandCategory)
            {
            case Enums.HandCategory.RoyalFlush:
                results = EvaluateRoyalFlushWinners(players);
                break;

            case Enums.HandCategory.StraightFlush:
                results = EvaluateStraightFlushWinners(players);
                break;

            case Enums.HandCategory.FourOfAKind:
                results = EvaluateFourOfAKindWinners(players);
                break;

            case Enums.HandCategory.FullHouse:
                results = EvaluateFullHouseWinners(players);
                break;

            case Enums.HandCategory.Flush:
                results = EvaluateFlushWinners(players);
                break;

            case Enums.HandCategory.Straight:
                results = EvaluateStraightWinners(players);
                break;

            case Enums.HandCategory.ThreeOfAKind:
                results = EvaluateThreeOfAKindWinners(players);
                break;

            case Enums.HandCategory.TwoPair:
                results = EvaluateTwoPairWinners(players);
                break;

            case Enums.HandCategory.OnePair:
                results = EvaluateOnePairWinners(players);
                break;

            case Enums.HandCategory.HighCard:
                results = EvaluateHighCardWinners(players);
                break;

            case Enums.HandCategory.None:
            default:
                break;
            }

            return(results);
        }
Exemplo n.º 3
0
        /// <summary>
        /// List all players within the winning hand category
        /// </summary>
        /// <param name="players"></param>
        /// <param name="winningHandCategory"></param>
        /// <returns></returns>
        public static List <PokerPlayer> GetAllPlayersWithWinningHandCategory(List <PokerPlayer> players, Enums.HandCategory winningHandCategory)
        {
            var results = new List <PokerPlayer>();

            foreach (var player in players)
            {
                if (player.Hand.HandCategory.Equals(winningHandCategory))
                {
                    results.Add(player);
                }
            }

            return(results);
        }
Exemplo n.º 4
0
 /// <summary>
 /// Evaluate winner based on hand category
 /// </summary>
 private void EvaluateWinners()
 {
     this._winningHandCategory = HandHelper.GetWinningHandCategory(this._players);
     this._winners             = HandHelper.EvaluateWinners(this._players, this._winningHandCategory);
 }