Ejemplo n.º 1
0
        public void RoundPair(List <Match> piPreviousMatches, List <Player> piPlayers, int piOffset = 0)
        {
            List <Player> players;

            if (piOffset == 0)
            {
                players = PairingUtility.GetPlayersOrdered(piPreviousMatches, piPlayers);
            }
            else
            {
                players = PairingUtility.GetPlayersSortedSpecifiedFirst(piPlayers, piPlayers[piOffset]);
            }

            Dictionary <int, List <Player> > playersByPoints = GetPlayersGroupedByPoints(players);

            PairUpLowPlayers(playersByPoints);

            List <Player> playersDownpaired = new List <Player>();

            foreach (var point in playersByPoints.Keys)
            {
                foreach (var player in playersDownpaired)
                {
                    playersByPoints[point].Add(player);
                }

                playersDownpaired.Clear();

                players = PairingUtility.GetPlayersOrdered(piPreviousMatches, playersByPoints[point]);

                InnerPairing(piPreviousMatches, players, playersDownpaired);
            }
        }
Ejemplo n.º 2
0
        public IEnumerable <Player> GetFinalStandings()
        {
            var players = PairingUtility.GetPlayersOrdered(ivAllMatches, ivPlayers.ToList());

            for (int i = 0; i < players.Count; i++)
            {
                players[i].Rank = i + 1;
            }

            return(players);
        }
Ejemplo n.º 3
0
        public IEnumerable <Player> GetTemporaryStandings()
        {
            var matches = new List <Match>();

            matches.AddRange(ivAllMatches);
            matches.AddRange(ivRounds.Last().Matches);

            var players = PairingUtility.GetPlayersOrdered(matches, ivPlayers.ToList());

            for (int i = 0; i < players.Count; i++)
            {
                players[i].Rank = i + 1;
            }

            return(players);
        }