private static void RunBenchmark(string[] args) { var runner = new CamelRunner(timeScalingFactor: TimeScalingFactor); runner.AddPlayer(new DiceThrower()); runner.AddPlayer(new IllegalBot()); runner.AddPlayer(new RandomBot()); var history = runner.GetPlayers().ToDictionary(x => x, x => new List <TimeSpan>()); for (var i = 0; i < 250; i++) { runner.ComputeNewGame(); Console.WriteLine($"Game #{i} finished"); foreach (var player in runner.GetPlayers()) { history[player].Add(player.ComputationTime); } } runner.Save(); var players = runner.GetPlayers(); var title = "Player"; Console.WriteLine($"{title,-32} Wins"); foreach (var player in players.OrderByDescending(x => x.Wins)) { var avgTime = history[player].Average(x => x.TotalSeconds); Console.WriteLine($"{player.Name,-32} {player.Wins, -6} {avgTime:0.000}s"); } }
public void Interface_Call_Save() { var bot = GetTestBot(); var runner = new CamelRunner(seed: 1); runner.AddPlayer(new RandomBot(1, seed: 2)); runner.AddPlayer(bot); runner.ComputeNewGame(steps: 0); runner.Save(); Assert.AreEqual(1, bot.CalledSave, "save"); }