Exemplo n.º 1
0
        private static void RemoveOldGameStates(Queue <PlayerCommandData> playerCommandsTmp)
        {
            if (players.Count == 0)
            {
                gameStates = new Dictionary <int, GameState>();
            }

            //Remove old states
            Queue <PlayerCommandData> .Enumerator enumerator = playerCommandsTmp.GetEnumerator();
            Dictionary <int, int> turnsReceived = new Dictionary <int, int>();

            while (enumerator.MoveNext())
            {
                PlayerCommandData cmd = enumerator.Current;
                if (!turnsReceived.ContainsKey(cmd.turnNumber))
                {
                    turnsReceived.Add(cmd.turnNumber, 0);
                }

                turnsReceived[cmd.turnNumber] = turnsReceived[cmd.turnNumber] + 1;
            }

            foreach (KeyValuePair <int, int> entry in turnsReceived)
            {
                if (entry.Value >= players.Count)
                {
                    gameStates.Remove(entry.Key);
                }
            }
        }