static void Main()
        {
            Console.OutputEncoding = System.Text.Encoding.UTF8;
            while (true)
            {
                Console.WriteLine("Welcome to Console Poker\n");
                char[,] table = new char[tableHeight, tableWidth];
                Dealer        dealer       = new Dealer();
                IEvaluator    evaluator    = new TexasEvaluator();
                List <Player> players      = AddPlayers();
                List <Card>   cardsOnTable = new List <Card>();

                RefreshTable(table, players, cardsOnTable);
                Wait();

                dealer.Deal(players);
                EvaluateHands(players, cardsOnTable, evaluator);
                RefreshTable(table, players, cardsOnTable);
                Wait();

                dealer.OpenFlop(cardsOnTable);
                EvaluateHands(players, cardsOnTable, evaluator);
                ProbabilityCalculator.Calculate(players, cardsOnTable, dealer.Deck);
                RefreshTable(table, players, cardsOnTable);
                Wait();

                dealer.OpenTurnOrRiver(cardsOnTable);
                EvaluateHands(players, cardsOnTable, evaluator);
                ProbabilityCalculator.Calculate(players, cardsOnTable, dealer.Deck);
                RefreshTable(table, players, cardsOnTable);
                Wait();

                dealer.OpenTurnOrRiver(cardsOnTable);
                EvaluateHands(players, cardsOnTable, evaluator);
                ProbabilityCalculator.Calculate(players, cardsOnTable, dealer.Deck);
                RefreshTable(table, players, cardsOnTable);
                DisplayWinner(players);
                Wait();
                Console.Clear();
            }
        }
Пример #2
0
        public static void Calculate(List <Player> players, List <Card> tableCards, List <Card> remainingDeck)
        {
            IEvaluator    eval        = new TexasEvaluator();
            List <Player> testPlayers = new List <Player>();

            foreach (var player in players)
            {
                Player newPlayer = new Player(player.Name);
                newPlayer.Hand.Add(player.Hand[0]);
                newPlayer.Hand.Add(player.Hand[1]);
                testPlayers.Add(newPlayer);
            }
            Dictionary <string, int> playerWins  = new Dictionary <string, int>();
            Dictionary <string, int> playerDraws = new Dictionary <string, int>();

            InitializeDicts(testPlayers, playerWins, playerDraws);
            int trials = 0;

            List <Card> testTableCards    = new List <Card>(tableCards);
            List <Card> testRemainingDeck = new List <Card>(remainingDeck);

            if (testTableCards.Count == 3)
            {
                TestForFlop(eval, testPlayers, playerWins, playerDraws, ref trials, testTableCards, testRemainingDeck, players);
            }

            else if (testTableCards.Count == 4)
            {
                TestForTurn(eval, testPlayers, playerWins, playerDraws, ref trials, testTableCards, testRemainingDeck);
            }

            else if (testTableCards.Count == 5)
            {
                TestForRiver(eval, testPlayers, playerWins, playerDraws, ref trials, testTableCards);
            }

            SetProbability(players, playerWins, playerDraws, trials);
        }