Ejemplo n.º 1
0
        public void PlayHand(object _lock)
        {
            PrepareHand();

            //PRE FLOP
            CurrentRound.IsPreflop = true;
            CurrentRound.PlayBettingRound(_lock);
            UpdatePlayersBets();
            pot = CurrentRound.CurrentPot;

            //FLOP
            deck.PullCard(Card.State.FaceDown); //burn card
            int i = 0;

            foreach (Card card in deck.PullCards(3))
            {
                communityCards[i] = card;
                i++;
            }

            //SECOND BETTING ROUND
            CurrentRound  = new Round(dealer, activePlayers, pot, false, preferences);
            activePlayers = CurrentRound.PlayBettingRound(_lock);
            UpdatePlayersBets();
            pot = CurrentRound.CurrentPot;

            //TURN
            deck.PullCard(Card.State.FaceDown); //burn card
            communityCards[i] = deck.PullCard(Card.State.FaceUp);
            i++;

            //THIRD BETTING ROUND
            CurrentRound  = new Round(dealer, activePlayers, pot, false, preferences);
            activePlayers = CurrentRound.PlayBettingRound(_lock);
            UpdatePlayersBets();
            pot = CurrentRound.CurrentPot;

            //RIVER
            deck.PullCard(Card.State.FaceDown); //burn card
            communityCards[i] = deck.PullCard(Card.State.FaceUp);

            //FORTH BETTING ROUND
            CurrentRound  = new Round(dealer, activePlayers, pot, false, preferences);
            activePlayers = CurrentRound.PlayBettingRound(_lock);
            UpdatePlayersBets();
            pot = CurrentRound.CurrentPot;
        }