Example #1
0
 public void RegisterPlayer(string data, int money = 1000)
 {
     lock (_syncRoot)
     {
         if (activePlayers.FirstOrDefault(p => p.Name.Equals(data)) != null)
         {
             Clients.All.otherName(activePlayers);
         }
         var activePlayer = activePlayers.FirstOrDefault(c => c.ConnectionId == Context.ConnectionId);
         bool exist = activePlayers.Any(p => p.Name.Equals(data));
         if (!activePlayers.Any() || (MultiplayerGame.ServerPlayer != null && MultiplayerGame.ServerPlayer.Equals(data)))
         {
             Clients.Client(Context.ConnectionId).showButton();
         }
         if (activePlayer == null && !exist)
         {
             activePlayer = new ActivePlayer
             {
                 Name = data,
                 PokerCards = new List<PokerCard>(),
                 ConnectionId = Context.ConnectionId,
                 Money = money,
                 Folded = false,
                 JoinDateTime = DateTime.Now.ToString("HH:mm:ss"),
                 LookingForOpponent = true
             };
             activePlayers.Add(activePlayer);
         }
         //Wanneer er iemand in de lobby komt wordt deze geüpdatet
         Clients.All.registerComplete(activePlayers);
     }
 }
Example #2
0
 private void SetWinner()
 {
     WinningPlayers = new List <IPlayer>();
     WinningHand    = Hands.HighestCard;
     foreach (var player in Players.Where(p => !p.Folded))
     {
         var x = Players.Where(p => !p.Folded);
         //De current hand setten bij de activePlayer
         if (player.GetType() == typeof(ActivePlayer))
         {
             ActivePlayer p = player as ActivePlayer;
             p.SetCurrentHand();
         }
         if (player.CurrentHand > WinningHand)
         {
             WinningHand = player.CurrentHand;
         }
     }
     foreach (var player in Players.Where(p => p.CurrentHand == WinningHand && !p.Folded).ToList())
     {
         if (WinningPlayers.Count != 0)
         {
             if (player.WinningCards.OrderBy(c => c.FaceValue).LastOrDefault().FaceValue >
                 WinningPlayers[0].WinningCards.OrderBy(c => c.FaceValue).LastOrDefault().FaceValue)
             {
                 foreach (var p in WinningPlayers)
                 {
                     p.Winner = false;
                 }
                 WinningPlayers = new List <IPlayer>();
                 player.Winner  = true;
                 WinningPlayers.Add(player);
             }
             else if (player.WinningCards.OrderBy(c => c.FaceValue).LastOrDefault().FaceValue ==
                      WinningPlayers[0].WinningCards.OrderBy(c => c.FaceValue).LastOrDefault().FaceValue)
             {
                 player.Winner = true;
                 WinningPlayers.Add(player);
             }
         }
         else
         {
             player.Winner = true;
             WinningPlayers.Add(player);
         }
     }
 }
Example #3
0
        public void AddNewPlayer(string name)
        {
            // Als er reeds een actieve player in het spel zit kan er geen meer toegevoegd worden
            if (Players.Count(c => c.GetType() == typeof(ActivePlayer)) == 1)
            {
                throw new InvalidOperationException("There is already a acitvePlayer in the game");
            }
            // Kijken of er al een player met die naam voorkomt. Naam moet uniek zijn
            if (Players.Count(c => c.Name.Equals(name)) == 1)
            {
                throw new InvalidOperationException("Player with name " + name + " already exist");
            }
            if (name.Trim().Equals(""))
            {
                throw new InvalidOperationException("Name cannot be empty");
            }
            // Bij de initialisatie van een player krijgt deze 2 kaarten.
            IPlayer p = new ActivePlayer(name, Table, Players.Count + 1);

            p.AddCard(Deck.Draw());
            p.AddCard(Deck.Draw());
            p.TurnAllCards();
            Players.Add(p);
        }
 public void TestPokerWithExistingListPlayers()
 {
     IPlayer p1 = new ActivePlayer("Player1",poker.Table,1);
     IPlayer p2 = new Bot("Player2", poker.Table, 2);
     IPlayer p3 = new Bot("Player3", poker.Table, 3);
     IPlayer p4 = new Bot("Player4", poker.Table, 4);
     IList<IPlayer> players = new IPlayer[] {p1, p2, p3, p4}.ToList();
     poker = new Poker(players);
     Assert.AreEqual(4, poker.Players.Count);
 }
Example #5
0
 public void AddExistingPlayer(IPlayer player)
 {
     IPlayer p = new ActivePlayer(player.Name, Table, Players.Count + 1, player.Money);
     p.AddCard(Deck.Draw());
     p.AddCard(Deck.Draw());
     p.TurnAllCards();
     Players.Add(p);
 }
Example #6
0
 public void AddNewPlayer(string name)
 {
     // Als er reeds een actieve player in het spel zit kan er geen meer toegevoegd worden
     if (Players.Count(c => c.GetType() == typeof(ActivePlayer)) == 1)
     {
         throw new InvalidOperationException("There is already a acitvePlayer in the game");
     }
     // Kijken of er al een player met die naam voorkomt. Naam moet uniek zijn
     if (Players.Count(c => c.Name.Equals(name)) == 1)
     {
         throw new InvalidOperationException("Player with name " + name + " already exist");
     }
     if (name.Trim().Equals(""))
     {
         throw new InvalidOperationException("Name cannot be empty");
     }
     // Bij de initialisatie van een player krijgt deze 2 kaarten.
     IPlayer p = new ActivePlayer(name, Table, Players.Count + 1);
     p.AddCard(Deck.Draw());
     p.AddCard(Deck.Draw());
     p.TurnAllCards();
     Players.Add(p);
 }