public static void Main() { var minimumBoardSize = 4; var maximumBoardSize = 19; var minimumAiLevel = 1; var maximumAiLevel = 1; Console.WriteLine("Benchmark was started"); var listToCheck = (from difficulty in Enumerable.Range(minimumAiLevel, maximumAiLevel - minimumAiLevel + 1) from boardSize in Enumerable.Range(minimumBoardSize, maximumBoardSize - minimumBoardSize + 1) select BenchmarkSettings.Create(boardSize, difficulty, difficulty)).ToList(); var injector = Bootstrap(); var reader = injector.GetInstance <IConfigurationReader>(); botFactory = injector.GetInstance <IGoBotFactory>(); botKind = reader.ReadBotKind("GnuGo"); RunBenchmark(listToCheck); Console.ReadLine(); }
private static async Task DoTest(BenchmarkSettings settings) { Console.WriteLine("____________________________________"); Console.WriteLine("Board size: {0}, bot #1 strength : {1}, bot #2 strength: {2}", settings.BoardSize, settings.FirstBotLevel, settings.SecondBotLevel); tcs = new TaskCompletionSource <bool>(); Watch.Restart(); var botWhite = botFactory.CreateBotInstance(botKind, "WhiteBot"); botWhite.BoardSize = settings.BoardSize; botWhite.Level = settings.FirstBotLevel; var botBlack = botFactory.CreateBotInstance(new BotKind { BinaryPath = botKind.BinaryPath, FullClassName = botKind.FullClassName }, "BlackBot"); botBlack.BoardSize = settings.BoardSize; botBlack.Level = settings.SecondBotLevel; var judge = new Adjudicator( Bootstrap(), new Duel { BoardSize = settings.BoardSize, BlackBot = "BlackBot", WhiteBot = "WhiteBot", Name = "Benchmarking" }) { SaveGameResults = true, GenerateLastBoard = true }; var runner = new BotRunner(judge, botBlack, botWhite) { EndGame = OnTestFinised }; await tcs.Task; runner.Cancel(); }