Ejemplo n.º 1
0
        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();
        }
Ejemplo n.º 2
0
        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();
        }