示例#1
0
 public void AddCard(PokerCard card)
 {
     if (Pokercards.Count == 5)
     {
         throw new InvalidOperationException("There are already 5 cards on the table");
     }
     Pokercards.Add(card);
 }
示例#2
0
 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);
 }
示例#3
0
 public void AddCard(PokerCard card)
 {
     if (Pokercards.Count == 5)
     {
         throw new InvalidOperationException("There are already 5 cards on the table");
     }
     Pokercards.Add(card);
 }
示例#4
0
 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);
     }
 }
示例#5
0
        public PokerCard Draw()
        {
            if (Pokercards.Count == 0)
            {
                throw new InvalidOperationException("Deck is empty");
            }
            PokerCard card = Pokercards[0];

            Pokercards.RemoveAt(0);
            return(card);
        }
示例#6
0
        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];
        }
示例#7
0
 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);
 }