Exemplo n.º 1
0
        private static void RunMany(string hand, int players, int count)
        {
            var player      = Player.FromStatsString(hand);
            var statsHand   = new StatsHoleCards(player);
            var playerStats = PreflopOdds.RunMany(player, players, count);

            Console.WriteLine($"Hand {statsHand} won {playerStats[statsHand].WinRate:P} of the time in {count} rounds with {players} players");
        }
Exemplo n.º 2
0
        private static void RunMany(int count)
        {
            var playerStats     = PreflopOdds.RunMany(count);
            var bestPlayerStats = playerStats.Aggregate(BestWinRate);
            var bestPlayer      = bestPlayerStats.Key;
            var bestStats       = bestPlayerStats.Value;

            Console.WriteLine($"Best hole cards: {bestPlayer} with {bestStats.Wins} wins out of {bestStats.Attempts} ({bestStats.WinRate:P}) in {count} rounds");
        }
Exemplo n.º 3
0
        private static void GeneratedOdds(Output output, int players)
        {
            var ranks = Enum.GetValues(typeof(Rank));

            Array.Reverse(ranks);

            foreach (Rank rowRank in ranks)
            {
                output.Indent();
                output.Tab();
                foreach (Rank colRank in ranks)
                {
                    // break the line and indent halfway through:
                    if (colRank == Rank.Eight)
                    {
                        output.AppendLine();
                        output.Indent();
                        output.Tab();
                    }

                    string statString;
                    if (rowRank <= colRank)
                    {
                        statString = $"{colRank.Stringify()}{rowRank.Stringify()}o";
                    }
                    else
                    {
                        statString = $"{rowRank.Stringify()}{colRank.Stringify()}s";
                    }

                    var player      = Player.FromStatsString(statString);
                    var statsHand   = new StatsHoleCards(player);
                    var playerStats = PreflopOdds.RunMany(player, players, 25000);

                    output.Append($@"{{Hand(""{statString}""), {playerStats[statsHand].WinRate:0.00}}}, ");
                }

                output.AppendLine();
                output.Indent(-2);
            }
        }