Example #1
0
        public static void SendBestMove(ThreadData threadData)
        {
            if (NoOutput)
            {
                return;
            }

            Statistics.Print();
            if (UciOptions.Ponder && threadData.GetPonderMove() != 0)
            {
                Console.WriteLine("bestmove " + new MoveWrapper(threadData.GetBestMove()) + " ponder " +
                                  new MoveWrapper(threadData.GetPonderMove()));
            }
            else
            {
                Console.WriteLine("bestmove " + new MoveWrapper(threadData.GetBestMove()));
            }
        }
Example #2
0
        private static void DoTest(IReadOnlyCollection <string> epdStrings)
        {
            var correctCounter = 0;

            foreach (var epdString in epdStrings)
            {
                var epd = new Epd(epdString);
                var cb  = ChessBoardInstances.Get(0);
                ChessBoardUtil.SetFen(epd.GetFen(), cb);

                TimeUtil.Reset();
                TimeUtil.SetSimpleTimeWindow(5000);
                SearchUtil.Start(cb);

                var bestMove = new MoveWrapper(ThreadData.GetBestMove());
                if (epd.IsBestMove)
                {
                    if (epd.MoveEquals(bestMove))
                    {
                        Console.WriteLine(epd.GetId() + " BM OK");
                        correctCounter++;
                        _positionTestOk++;
                    }
                    else
                    {
                        Console.WriteLine(epd.GetId() + " BM NOK " + bestMove + " - " + epd);
                        _positionTestNok++;
                    }
                }
                else
                {
                    if (epd.MoveEquals(bestMove))
                    {
                        Console.WriteLine(epd.GetId() + " AM NOK " + epd);
                        _positionTestNok++;
                    }
                    else
                    {
                        Console.WriteLine(epd.GetId() + " AM OK");
                        correctCounter++;
                        _positionTestOk++;
                    }
                }
            }

            Console.WriteLine(correctCounter + "/" + epdStrings.Count);
        }
Example #3
0
        private static async Task MaxTimeTask(CancellationToken cancellationToken)
        {
            await Task.Delay((int)TimeUtil.GetMaxTimeMs(), cancellationToken);

            if (cancellationToken.IsCancellationRequested)
            {
                return;
            }
            if (Pondering)
            {
                _maxTimeExceeded = true;
            }
            else if (_threadData.GetBestMove() != 0)
            {
                Console.WriteLine("info string max time exceeded");
                NegamaxUtil.IsRunning = false;
            }
        }