예제 #1
0
파일: Game.cs 프로젝트: Ylniss/PokerInz
        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();
        }
예제 #2
0
파일: Game.cs 프로젝트: Ylniss/PokerInz
        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);
            }
        }