public void AddCard(PokerCard card) { if (Pokercards.Count == 5) { throw new InvalidOperationException("There are already 5 cards on the table"); } Pokercards.Add(card); }
public void AddCard(PokerCard card) { if (PokerCards.Count > 2) { throw new InvalidOperationException("Pokerplayer cannot have more than 2 cards in his hand"); } PokerCards.Add(card); }
public void Shuffle() { for (int i = 1; i < Pokercards.Count * 3; i++) { int randomPosition = random.Next(0, Pokercards.Count); PokerCard card = Pokercards[randomPosition]; Pokercards.RemoveAt(randomPosition); Pokercards.Add(card); } }
public PokerCard Draw() { if (Pokercards.Count == 0) { throw new InvalidOperationException("Deck is empty"); } PokerCard card = Pokercards[0]; Pokercards.RemoveAt(0); return(card); }
public void NextPlayer() { // Als er nog 1 of minder spelers overblijven is het spel gedaan if (Players.Count(p => p.Folded) >= Players.Count - 1) { EndGame(); } // Eerst wordt er gekeken of de vorige player gefold heeft. // Zoja, dan wordt hij overgeslagen. while (Players[(IndexActivePlayer) % Players.Count].Folded) { IndexActivePlayer++; RollingIndex++; } RollingIndex++; // Als elke speler aan de beurt is geweest en elke niet gefolde speler heeft evenveel gebet int i = Players.Count(p => (p.CurrentBet == Table.CurrentBet && !p.Folded)); int j = Players.Count(p => !p.Folded); int x = Players.Count(p => p.Folded); // normaal moet het rollingindex % players.count zijn dit levert problemen op if ((RollingIndex >= Players.Count) && (Players.Count(p => (p.CurrentBet == Table.CurrentBet && !p.Folded)) == Players.Count(p => !p.Folded))) { try { Table.CurrentBet = 0; // Na de eerste ronde worden de 3 org kaarten op de tafel omgedraaid if (PreFlop) { Table.TurnAllCards(); PreFlop = false; } else { PokerCard card = Deck.Draw(); card.TurnCard(); Table.AddCard(card); } foreach (var p in Players) { p.CurrentBet = 0; } //IndexActivePlayer = StartIndex; //TODO // ALS P5(SERVER) CHECKT EN P1 BET --> P5 MOET CALLEN = er wordt een loop gemaakt. // Telkens wanneer er een loop wordt gemaakt moet de StartIndex + 1 gedaan worden. RollingIndex = 0; //Wanneer er op een gefolde speler gespawnd wordt, zal deze overgeslagen worden. while (Players[(IndexActivePlayer) % Players.Count].Folded) { IndexActivePlayer++; RollingIndex++; } } catch (InvalidOperationException) { EndGame(); } } ActivePlayer = Players[IndexActivePlayer++ % Players.Count]; }
public void AddCard(PokerCard card) { if (PokerCards.Count > 2) throw new InvalidOperationException("Pokerplayer cannot have more than 2 cards in his hand"); PokerCards.Add(card); }