Exemplo n.º 1
0
        public static Matches BestLineupAgainst(List <List <Player> > potentialHomeTeamLineups, List <List <Player> > potentialVisitingTeamLineups)
        {
            var potentialMatches = new Matches();

            foreach (var homeLineup in potentialHomeTeamLineups)
            {
                potentialMatches.AddRange(potentialVisitingTeamLineups.Select(visitingLineup => new Match(homeLineup, visitingLineup)));
            }

            foreach (var potentialMatch in potentialMatches.OrderByDescending(x => x.IsEqual))
            {
                var orderedHomeTeamLineup     = potentialMatch.HomeTeamLineup.OrderBy(x => x.SkillLevel).ToList();
                var orderedVisitingTeamLineup = potentialMatch.VisitingTeamLineup.OrderBy(x => x.SkillLevel).ToList();

                for (var i = 0; i < orderedHomeTeamLineup.Count; i++)
                {
                    potentialMatch.PlayersVsPlayers.Add(new PlayerVsPlayer
                    {
                        HomeTeamPlayer     = orderedHomeTeamLineup[i],
                        VisitingTeamPlayer = orderedVisitingTeamLineup[i],
                    });
                }
            }

            return(potentialMatches);
        }
Exemplo n.º 2
0
 public void AddMatches(IEnumerable <Endpoint> endpoints)
 {
     if (Matches == null)
     {
         Matches = new List <Endpoint>(endpoints);
     }
     else
     {
         Matches.AddRange(endpoints);
     }
 }
Exemplo n.º 3
0
        public IRavenLuceneMethodQuery Merge(IRavenLuceneMethodQuery other)
        {
            var termsMatchQuery = (TermsMatchQuery)other;

            Matches.AddRange(termsMatchQuery.Matches);

            Matches = Matches.Distinct()
                      .Where(x => string.IsNullOrWhiteSpace(x) == false)
                      .OrderBy(s => s, StringComparer.Ordinal)
                      .ToList();
            return(this);
        }
Exemplo n.º 4
0
        private void ManageIrregularGroup()
        {
            var nativeChallengers    = new List <Challenger>(_challengers);
            var remainingChallengers = FetchRemainigChallengers(ref nativeChallengers);

            var tempGroup = new Group(nativeChallengers, this.GroupLabel, Shuffle, 1);

            tempGroup.ManageRegularGroup();

            var challengersFromRoundOne = tempGroup._challengers;

            Matches.AddRange(tempGroup.Matches);
            Losers.AddRange(tempGroup.Losers);

            nativeChallengers = Enumerable.Concat(remainingChallengers, challengersFromRoundOne).ToList();
            _challengers      = nativeChallengers;
            ManageRegularGroup();
        }
Exemplo n.º 5
0
        public void Simulate(bool doubles)
        {
            if (!TeamCount.Contains(Teams.Count))
            {
                Console.WriteLine($"There is not an allowed number of teams in the tournament. Current amount: {Teams.Count}");
                return;
            }
            if (!Referees.Any())
            {
                Console.WriteLine("Please add at least one referee to the tournament");
                return;
            }
            if (GameMaster == null)
            {
                Console.WriteLine("A Game Master has not been set.");
                return;
            }

            var currentMatches = new List <Match>();
            var currentTeams   = doubles ? Teams.Where(team => team.IsDouble).ToList() : Teams.Where(team => !team.IsDouble).ToList();
            var round          = 1;

            while (currentTeams.Count > 1)
            {
                var initializedMatches = InitializeMatches(currentTeams);
                Matches.AddRange(initializedMatches);
                currentMatches.AddRange(initializedMatches);
                currentTeams.Clear();
                foreach (var match in currentMatches)
                {
                    match.Play(round);
                    currentTeams.Add(match.Winner);
                }
                currentMatches.Clear();
                round++;
            }

            Winner.Add(currentTeams[0]);
        }
Exemplo n.º 6
0
 public MatchmakingResult(IEnumerable <Match> matches)
 {
     Matches.AddRange(matches);
 }
Exemplo n.º 7
0
 private Task AddMatches(List <Schema.Models.CosmosDB.Match> matches)
 {
     Matches.AddRange(matches);
     return(Task.CompletedTask);
 }