Example #1
0
 public PlayingUser(string name, int credit, Game game) : base(name, game)
 {
     this.credit   = credit;
     status        = "Active";
     roundsWon     = 0;
     roundsLost    = 0;
     biggestPotWon = 0;
     bestHand      = CardAnalyzer.HandRank.HighCard;
     userInput     = new UserInput();
     gainPerRound  = new List <int>();
 }
Example #2
0
        private List <PlayingUser> DetermineWinner()
        {
            Dictionary <PlayingUser, CardAnalyzer.HandRank> playerScores = new Dictionary <PlayingUser, CardAnalyzer.HandRank>();

            ca.setCardArray(cards);
            foreach (PlayingUser player in players)
            {
                if (player.GetStatus() != "Fold")
                {
                    ca.setHand(player.GetHand());
                    playerScores.Add(player, ca.analyze());
                    if (playerScores[player] < player.GetBestHand())
                    {
                        player.SetBestHand(playerScores[player]);
                    }
                }
            }

            CardAnalyzer.HandRank minValue = CardAnalyzer.HandRank.HighCard;
            foreach (CardAnalyzer.HandRank rank in playerScores.Values)
            {
                if (rank < minValue)
                {
                    minValue = rank;
                }
            }

            Dictionary <PlayingUser, CardAnalyzer.HandRank> bestPlayerScores = new Dictionary <PlayingUser, CardAnalyzer.HandRank>();

            foreach (PlayingUser player in playerScores.Keys)
            {
                if (playerScores[player] == minValue)
                {
                    bestPlayerScores.Add(player, playerScores[player]);
                }
            }



            List <PlayingUser> winners = new List <PlayingUser>();

            foreach (PlayingUser player in bestPlayerScores.Keys)
            {
                if (winners.Count == 0)
                {
                    winners.Add(player);
                }
                else
                {
                    PlayerHand winner = ca.tieBreaker(minValue, winners.First().GetHand(), player.GetHand());
                    if (winner == null)
                    {
                        winners.Add(player);
                    }
                    else if (winner == player.GetHand())
                    {
                        winners.Clear();
                        winners.Add(player);
                    }
                }
            }
            return(winners);
        }
Example #3
0
 public void SetBestHand(CardAnalyzer.HandRank hr)
 {
     bestHand = hr;
 }