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)); } }
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(); }
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}"); }