public string RecordMetrics(NFLPlayer player, NFLGame game)
        {
            var gameKey = game.GameKey();
             var pgm = Dao.Get(player.PlayerCode, gameKey );

             if (pgm.GameKey != null)
             {
            pgm.TDp = player.CurrentGameMetrics.TDp;
            pgm.TDr = player.CurrentGameMetrics.TDr;
            pgm.TDc = player.CurrentGameMetrics.TDc;
            pgm.YDp = player.CurrentGameMetrics.YDp;
            pgm.YDr = player.CurrentGameMetrics.YDr;
            pgm.YDc = player.CurrentGameMetrics.YDc;
            pgm.FG = player.CurrentGameMetrics.FG;
            pgm.Pat = player.CurrentGameMetrics.Pat;

            Dao.Save(pgm);
            return string.Format("Game:{0} Player:{1} metrics:{2}", game.GameName(), player.PlayerName, pgm );
             }
             else
            return string.Format("Failed to find pgm for {0}:{1}", game.GameName(), player.PlayerName);
        }
예제 #2
0
        private void AddBreakdown(string teamCode, EpMetric ep, NFLGame g)
        {
            var scorers = string.Empty;

            if ( ep.OffTDr > 0 )
                scorers = g.ScorersOff( Constants.K_SCORE_TD_RUN, teamCode );

            Breakdowns.AddLine( string.Format( "{0}-Tdr", teamCode ),
                string.Format("{0}  {1:#0} {2}",
               g.GameName(), ep.OffTDr, scorers ));

            if ( ep.OffTDp > 0 )
                scorers = g.ScorersOff( Constants.K_SCORE_TD_PASS, teamCode );

            Breakdowns.AddLine( string.Format( "{0}-Tdp", teamCode ),
                string.Format( "{0}  {1:#0} {2}",
                g.GameName(), ep.OffTDp, scorers ) );
        }
예제 #3
0
        private void RateGame( NFLGame g )
        {
            if ( g.Played() )
            {
                Utility.Announce( string.Format( "Rating game {0}", g.GameName() ) );
                //  workout the Average Score
                //AverageScore = Season.AverageScoreAfterWeek( g.WeekNo );
                AverageScore = 21;  //  this is pretty much fixed

                //  workout adjustments to the previous ratings
                NibbleGameRating startingGameRating;
                if ( g.Week.Equals( "01" ) )
                    startingGameRating = new NibbleGameRating( 0, 0, 0, 0 );
                else
                    // Get previous rating
                    startingGameRating = GetRating( g );

                var projHome = (int) ( AverageScore + ( ( startingGameRating.HomeOff + startingGameRating.AwayDef )/2 ) );
                projHome += 3;  // home field advantage
                var projAway = (int) ( AverageScore + ( ( startingGameRating.AwayOff + startingGameRating.HomeDef )/2 ) );

                var adjustment = new NibbleGameRating( 0, 0, 0, 0 );
                var ff = FudgeFactor( g.Week );
                adjustment.HomeOff = ( MaximumScore( g.HomeScore ) - projHome ) / ff;
                adjustment.HomeDef = ( MaximumScore( g.AwayScore ) - projAway ) / ff;
                adjustment.AwayOff = ( MaximumScore( g.AwayScore ) - projAway ) / ff;
                adjustment.AwayDef = ( MaximumScore( g.HomeScore ) - projHome ) / ff;

                Utility.Announce(string.Format("    Projected score {0} {1:00} v {2} {3:00}",
                                                                g.HomeTeam, projHome, g.AwayTeam, projAway));
                Utility.Announce(string.Format("    Actual    score {0} {1:00} v {2} {3:00}",
                                                                g.HomeTeam, g.HomeScore, g.AwayTeam, g.AwayScore));
                Utility.Announce(string.Format("    Adjustments  H {0} {1} - {2}",
                                                                g.HomeTeam, adjustment.HomeOff, adjustment.HomeDef ));
                Utility.Announce(string.Format("    Adjustments  A {0} {1} - {2}",
                                                                g.AwayTeam, adjustment.AwayOff, adjustment.AwayDef));

                AdjustRatings( startingGameRating, adjustment, g.HomeTeam, g.AwayTeam, g.Week );
            }
        }