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