Пример #1
0
        private PlayerAction Call(PokerPlayer player)
        {
            long totalChips;

            if (player.Chips < raiseSize)
            {
                totalChips = player.Chips;
                AddToPot(player, totalChips);
                LogLine($"Not enough money, calling to {player.Chips} instead");
            }
            else
            {
                totalChips = raiseSize - player.BetValue;
                AddToPot(player, totalChips);
            }
            LogLine(player.ToString() + " called");
            return(player.Call(totalChips));
        }
Пример #2
0
        public HoldemGame(Tables AssignedTable, double buyin = 2.0, Patron p = null)
        {
            this.table          = AssignedTable;
            this.dealer         = null;
            this.minBet         = buyin;
            r                   = new Random();
            bb                  = 20;
            sb                  = bb / 2;
            Hands               = 1;
            st                  = new Queue(new Deck(4).ReturnDeck());
            playerGroup         = new List <CardPlayer>();
            this.pendingPlayers = new BlockingCollection <CardPlayer>();
            logID               = Guid.NewGuid().ToString();
            Logs.RegisterNewTrace(logID, null, "poker");
            Type = CardGameType.POKER;
            int totalPlayersToAdd = this.table.PlayerLimit();

            commands = new ConcurrentQueue <string>();

            Logs.LogTrace("log GUID : " + logID, logID);
            Logs.LogTrace($"T: {Thread.CurrentThread.ManagedThreadId} New blackjack game started", logID);

            int forInt = 0;

            if (p != null)
            {
                var newPlayer = new PokerPlayer(p);
                playerGroup.Add(newPlayer);
                positions.Add(0, newPlayer);
                betPool.Add(newPlayer, 0);
                outputToConsole = true;
                forInt++;
            }

            for (int i = forInt; i < totalPlayersToAdd; i++)
            {
                var newPlayer = new PokerPlayer("123 fake st", new DateTime(1980, 1, 1), 'M');
                playerGroup.Add(newPlayer);
                positions.Add(i, newPlayer);
                betPool.Add(newPlayer, 0);
            }

            button = 0;
        }
Пример #3
0
        private PlayerAction Raise(PokerPlayer player, long chips)
        {
            long totalChips = 0;

            if (player.Chips < chips)
            {
                raiseSize += player.Chips;
                AddToPot(player, raiseSize);
                LogLine($"Not enough chips to raise {chips}, raising up to {raiseSize} instead");
            }
            else
            {
                totalChips = raiseSize - player.BetValue + chips;
                raiseSize += chips;
                AddToPot(player, totalChips);
            }

            LogLine($"Raised to {raiseSize}");
            return(player.Raise(raiseSize));
        }
Пример #4
0
        public override void StartGame()
        {
            this.run = true;

            Console.WriteLine($"Game started - {ID}");

            while (pendingPlayers.Count > 0)
            {
                var newPlayer = new PokerPlayer(pendingPlayers.Take());
                playerGroup.Add(newPlayer);
                positions.Add(positions.Count - 1, newPlayer);
                betPool.Add(newPlayer, 0);
            }

            while (run)
            {
                Hands++;
                Main();
            }

            Console.WriteLine($"game ended: {logID}");
        }
Пример #5
0
 public AIPotentialCardValues(List <Card> cards, PokerPlayer player)
 {
     this.cards  = cards;
     this.player = player;
     Evaluate();
 }
Пример #6
0
 private PlayerAction Fold(PokerPlayer player)
 {
     LogLine(player.ToString() + " folded");
     return(player.Fold());
 }