示例#1
0
        public void GenerateProjections(double Average)
        {
            List <BasketballPlayer> teamPlayers = new List <BasketballPlayer>();

            teamPlayers.AddRange(PointGuards);
            teamPlayers.AddRange(ShootingGuards);
            teamPlayers.AddRange(SmallForwards);
            teamPlayers.AddRange(PowerForwards);
            teamPlayers.AddRange(Centers);

            double multiplier = (ImpliedScore - Average) / 50;
            double pgScore    = PointGuards.Sum(s => s.PreProjected);
            double sgScore    = ShootingGuards.Sum(s => s.PreProjected);
            double sfScore    = SmallForwards.Sum(s => s.PreProjected);
            double pfScore    = PowerForwards.Sum(s => s.PreProjected);
            double cScore     = Centers.Sum(s => s.PreProjected);

            TeamTotalPoints = pgScore + sgScore + sfScore + pfScore + cScore;

            foreach (var player in teamPlayers)
            {
                double projectedPointsNoMult = player.PointsPerMinute * player.TotalMinutes;
                double projectedAverage      = (projectedPointsNoMult + player.PreProjected) / 2;
                double percentOfTeam         = projectedAverage / TeamTotalPoints;
                double playerMultiplier      = (multiplier * percentOfTeam) + (percentOfTeam * player.DVPMultiplier) + 1;
                player.Projected = playerMultiplier * projectedAverage;
            }
        }