public void ResetGame(GameSettings gameSettings) { int tablePosition = 0; foreach (var player in LostPlayers) { player.Chips = gameSettings.PlayersStartingCash[player]; player.Reset(); player.TablePosition = tablePosition++; Players.Add(player); } LostPlayers.Clear(); }
protected void removeLostPlayers() { var lostPlayers = Players.Where(x => x.Chips <= 0).ToArray(); for (int i = 0; i < lostPlayers.Count(); ++i) { LostPlayers.Add(lostPlayers.ElementAt(i)); //list of players in order of loosing Players.Remove(lostPlayers.ElementAt(i)); } for (int i = 0; i < Players.Count; ++i) { Players[i].TablePosition = i; } if (Players.Count == 1) //last player only { if (PlayersStats.PlayersWinCount.ContainsKey(Players[0])) { PlayersStats.PlayersWinCount[Players[0]] += 1; } else { PlayersStats.PlayersWinCount.Add(Players[0], 1); } LostPlayers.Add(Players.First()); Players.RemoveAt(0); foreach (var lostPlayer in LostPlayers) { if (PlayersStats.PlayerPerformanceScores.ContainsKey(lostPlayer)) { PlayersStats.PlayerPerformanceScores[lostPlayer] += LostPlayers.IndexOf(lostPlayer); } else { PlayersStats.PlayerPerformanceScores.Add(lostPlayer, LostPlayers.IndexOf(lostPlayer)); } } } if (TableUpdateEvent != null) { TableUpdateEvent(this); } }