Exemplo n.º 1
0
        public IEnumerable <Trade> ProposeTrades(TradeSuggestion suggestion)
        {
            var result = new List <Trade>();

            foreach (Player player1 in suggestion.Team1.Players)
            {
                decimal player1Rating = _rater.Rate(player1);
                foreach (Player player2 in suggestion.Team2.Players)
                {
                    decimal player2Rating = _rater.Rate(player2);
                    if (!Tweaks.AllowScrubs && player2Rating <= Tweaks.ScrubThreshold)
                    {
                        continue;
                    }
                    if (!Tweaks.AllowNegativeTrades && player2Rating < player1Rating)
                    {
                        continue;
                    }

                    if (Math.Abs(player2Rating - player1Rating) <= 1.0M)
                    {
                        result.Add(new Trade(
                                       new TradablePlayer(player1, player1Rating),
                                       new TradablePlayer(player2, player2Rating),
                                       Tweaks));
                    }
                }
            }

            return(Reorder(result));
        }
Exemplo n.º 2
0
        public IEnumerable <Trade> ProposeTrades(TradeSuggestion result)
        {
            var trade1 = new Trade(new TradablePlayer("Babe Ruth", "OF", 50), new TradablePlayer("Cap Anson", "SP", 30), new EngineTweaks());
            var trade2 = new Trade(new TradablePlayer("Lou Gehrig", "1B", 40), new TradablePlayer("Wee Willie Keeler", "2B", 40), new EngineTweaks());

            return(new List <Trade> {
                trade1, trade2
            });
        }
Exemplo n.º 3
0
        public TradeSuggestion SuggestTrade(Uri teamUri)
        {
            var team1    = new Team(teamUri);
            var team2Uri = new Uri(Regex.Replace(teamUri.ToString(), @"teamId=(\d*)", "teamId=1"));
            var team2    = new Team(team2Uri);
            var result   = new TradeSuggestion(teamUri, team2Uri, _engine.Tweaks);

            _scraper.Populate(result.Team1);
            _scraper.Populate(result.Team2);

            result.TradesToTry.AddRange(_engine.ProposeTrades(result));

            return(result);
        }