Beispiel #1
0
        public override void NotifyTurnToMove()
        {
            search.searchDiagnostics.isBook = false;
            moveFound = false;

            var bookMove = Move.InvalidMove;

            if (settings.useBook && board.plyCount <= settings.maxBookPly)
            {
                if (book.HasPosition(board.ZobristKey))
                {
                    bookMove = book.GetRandomBookMoveWeighted(board.ZobristKey);
                }
            }

            if (bookMove.IsInvalid)
            {
                if (settings.useThreading)
                {
                    StartThreadedSearch();
                }
                else
                {
                    StartSearch();
                }
            }
            else
            {
                search.searchDiagnostics.isBook  = true;
                search.searchDiagnostics.moveVal = PGNCreator.NotationFromMove(FenUtility.CurrentFen(board), bookMove);
                settings.diagnostics             = search.searchDiagnostics;
                Task.Delay(bookMoveDelayMillis).ContinueWith(t => PlayBookMove(bookMove));
            }
        }
Beispiel #2
0
        public void ExportGame()
        {
            var pgn        = PGNCreator.CreatePGN(gameMoves.ToArray());
            var baseUrl    = "https://www.lichess.org/paste?pgn=";
            var escapedPGN = UnityWebRequest.EscapeURL(pgn);
            var url        = baseUrl + escapedPGN;

            Application.OpenURL(url);
            var t = new TextEditor();

            t.text = pgn;
            t.SelectAll();
            t.Copy();
        }
        public void ExportGame()
        {
            string pgn        = PGNCreator.CreatePGN(gameMoves.ToArray());
            string baseUrl    = "https://www.lichess.org/paste?pgn=";
            string escapedPGN = UnityEngine.Networking.UnityWebRequest.EscapeURL(pgn);
            string url        = baseUrl + escapedPGN;

            Application.OpenURL(url);
            TextEditor t = new TextEditor();

            t.text = pgn;
            t.SelectAll();
            t.Copy();
        }
Beispiel #4
0
        static public void BestMove(Move move)
        {
            string moveStr = BoardRepresentation.SquareNameFromIndex(move.StartSquare);

            moveStr += BoardRepresentation.SquareNameFromIndex(move.TargetSquare);
            // add promotion piece
            if (move.IsPromotion)
            {
                int promotionPieceType = move.PromotionPieceType;
                moveStr += PGNCreator.GetSymbolFromPieceType(promotionPieceType);
            }

            Console.WriteLine($"bestmove {moveStr}");
        }