Пример #1
0
        private static List <PlayerCluster> buildPlayerClusters(List <Player> players, Dictionary <Player, PlayerClusterInfo> playerClusterInformations)
        {
            JsDictionary <int, Player> hitPlayers     = players.ToDictionary(a => a.Id);
            List <PlayerCluster>       playerClusters = new List <PlayerCluster>();
            int hitPlayerCount = players.Count;


            var playerClusterInfoHits      = new JsDictionary <int, PlayerClusterInfo>();
            var playerClusterInfoHitsArray = new List <PlayerClusterInfo>();

            while (hitPlayerCount > 0)
            {
                playerClusterInfoHits.Clear();
                playerClusterInfoHitsArray.Clear();

                GetPlayerCluster(playerClusterInfoHits, playerClusterInfoHitsArray, playerClusterInformations, playerClusterInformations[hitPlayers[hitPlayers.Keys.First()]], hitPlayers);
                PlayerCluster cluster = new PlayerCluster();
                for (int index = 0; index < playerClusterInfoHitsArray.Count; index++)
                {
                    var playerClusterInfoHit = playerClusterInfoHitsArray[index];
                    cluster.Players.Add(playerClusterInfoHit.Player);
                    hitPlayers.Remove(playerClusterInfoHit.Player.Id);
                    hitPlayerCount--;
                }

                playerClusters.Add(cluster);

//                Console.WriteLine(string.Format("Players Left: {0}, Clusters Total: {1} ", hitPlayerCount, playerClusters.Count));
            }
            return(playerClusters);
        }
Пример #2
0
        private static List<PlayerCluster> buildPlayerClusters(List<Player> players, Dictionary<Player, PlayerClusterInfo> playerClusterInformations)
        {
            JsDictionary<int, Player> hitPlayers = players.ToDictionary(a => a.Id);
            List<PlayerCluster> playerClusters = new List<PlayerCluster>();
            int hitPlayerCount = players.Count;


            var playerClusterInfoHits = new JsDictionary<int, PlayerClusterInfo>();
            var playerClusterInfoHitsArray = new List<PlayerClusterInfo>();

            while (hitPlayerCount > 0)
            {
                playerClusterInfoHits.Clear();
                playerClusterInfoHitsArray.Clear();

                GetPlayerCluster(playerClusterInfoHits, playerClusterInfoHitsArray, playerClusterInformations, playerClusterInformations[hitPlayers[hitPlayers.Keys.First()]], hitPlayers);
                PlayerCluster cluster = new PlayerCluster();
                for (int index = 0; index < playerClusterInfoHitsArray.Count; index++)
                {
                    var playerClusterInfoHit = playerClusterInfoHitsArray[index];
                    cluster.Players.Add(playerClusterInfoHit.Player);
                    hitPlayers.Remove(playerClusterInfoHit.Player.Id);
                    hitPlayerCount--;
                }
                
                playerClusters.Add(cluster);

//                Console.WriteLine(string.Format("Players Left: {0}, Clusters Total: {1} ", hitPlayerCount, playerClusters.Count));
            }
            return playerClusters;
        }