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; }