public Hand NextHand(Game game) { Random random = new Random(); Hand hand = new Hand() { Id = game.HandNumber + 1, Stage = Stage.Start }; Hand previousHand = GetPreviousHand(game); if (previousHand == null) { hand.BigBlind = game.InitialChipCount / 50; hand.SmallBlind = game.InitialChipCount / 100; hand.Dealer = random.Next(game.Players.Count); } else { hand.BigBlind = previousHand.BigBlind; hand.SmallBlind = previousHand.SmallBlind; hand.Dealer = (previousHand.Dealer + 1) % game.Players.Count; } game.Hands.Add(hand); hand.Deck = GetNewDeck(); foreach (Player player in game.Players) { PlayerHand playerHand = new PlayerHand() { Player = player, Hand = hand, HasFolded = false }; for (int i = 0; i < CardsPerPlayerHand; i++) { playerHand.Cards.Add(DrawCard(hand.Deck, random)); } hand.PlayerHands.Add(playerHand); } return hand; }
private Hand GetPreviousHand(Game game) { return game.Hands.LastOrDefault(); }