Example #1
0
        public PerftRunner(IEpdParser parser, ILogger log, IBuildTimeStamp buildTimeStamp, IPerft perft, IConfiguration configuration, ObjectPool <PerftResult> resultPool, IUci uci)
        {
            _epdParser      = parser;
            _log            = log;
            _buildTimeStamp = buildTimeStamp;
            _perft          = perft;
            _perft.BoardPrintCallback ??= s => _log.Information("Board:\n{0}", s);
            _resultPool = resultPool;

            _uci = uci;
            _uci.Initialize();

            _runners = new Func <CancellationToken, IAsyncEnumerable <IPerftPosition> >[] { ParseEpd, ParseFen };

            TranspositionTableOptions = Framework.IoC.Resolve <IOptions>(OptionType.TTOptions) as TTOptions;
            configuration.Bind("TranspositionTable", TranspositionTableOptions);

            _resultCache = new Dictionary <HashKey, ulong>(256);

            _outputSettings = new JsonSerializerSettings
            {
                Formatting = Formatting.Indented
            };

            _cpu = new CPU();
        }
Example #2
0
        public PerftRunner(IEpdParser parser, ILogger log, IBuildTimeStamp buildTimeStamp, IPerft perft, IPerftResult result, IConfiguration configuration)
        {
            _epdParser                = parser;
            _log                      = log;
            _buildTimeStamp           = buildTimeStamp;
            _perft                    = perft;
            _perft.BoardPrintCallback = PrintBoard;
            _result                   = result;
            _configuration            = configuration;
            _runners                  = new Func <CancellationToken, IAsyncEnumerable <IPerftPosition> >[] { ParseEpd, ParseFen };

            TranspositionTableOptions      = Framework.IoC.Resolve <IOptions>(serviceKey: OptionType.TTOptions) as TTOptions;
            TranspositionTableOptions.Use  = configuration.GetValue <bool>("TranspositionTable:Use");
            TranspositionTableOptions.Size = configuration.GetValue <int>("TranspositionTable:Size");
        }