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)); }
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 }); }
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); }