private void ChangeScore(Team winner, Team loser) { double score = Parameter.AvgAbility * Parameter.ScoreRate; score = score / winner.TotalScole * loser.TotalScole; winner.Players.ForEach(x => x.Score += score); loser.Players.ForEach(x => x.Score -= score); }
private Team[] GetTwoTeams() { Team[] ts = new Team[2]; ts[0] = new Team(); ts[1] = new Team(); HashSet<int> usedId = new HashSet<int>(); int baseId = Rand.Next(0, Parameter.PlayerCnt); int minId = Math.Max(0, baseId - Math.Max(10, Parameter.PlayerCnt / Parameter.TeammateSize)); int maxId = Math.Min(Parameter.PlayerCnt, baseId + Math.Max(10, Parameter.PlayerCnt / Parameter.TeammateSize)); for (int i = 0; i < 2 * Parameter.TeamSize; ++i) { ts[i / Parameter.TeamSize].AddMeber(PickNextPlayer(minId, maxId, usedId)); } return ts; }