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); }
public void AddMatches(IEnumerable <Endpoint> endpoints) { if (Matches == null) { Matches = new List <Endpoint>(endpoints); } else { Matches.AddRange(endpoints); } }
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); }
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(); }
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]); }
public MatchmakingResult(IEnumerable <Match> matches) { Matches.AddRange(matches); }
private Task AddMatches(List <Schema.Models.CosmosDB.Match> matches) { Matches.AddRange(matches); return(Task.CompletedTask); }