From: Marco Costalba Date: Mon, 3 Jan 2011 21:31:17 +0000 (+0100) Subject: Revert Chess960 fix X-Git-Url: https://git.sesse.net/?p=stockfish;a=commitdiff_plain;h=2bb555025fc94fde3972b644bdbd27f245475213 Revert Chess960 fix Will be substituted by a better next patch. Signed-off-by: Marco Costalba --- diff --git a/src/position.cpp b/src/position.cpp index d3ca869b..f0301e4e 100644 --- a/src/position.cpp +++ b/src/position.cpp @@ -274,6 +274,10 @@ void Position::from_fen(const string& fen) { castleRightsMask[make_square(initialQRFile, RANK_1)] ^= WHITE_OOO; castleRightsMask[make_square(initialQRFile, RANK_8)] ^= BLACK_OOO; + isChess960 = initialKFile != FILE_E + || initialQRFile != FILE_A + || initialKRFile != FILE_H; + find_checkers(); st->key = compute_key(); @@ -349,7 +353,7 @@ bool Position::set_castling_rights(char token) { /// Position::to_fen() returns a FEN representation of the position. In case /// of Chess960 the Shredder-FEN notation is used. Mainly a debugging function. -const string Position::to_fen(bool isChess960) const { +const string Position::to_fen() const { string fen; Square sq; @@ -436,8 +440,7 @@ void Position::print(Move move) const { cout << c << pieceLetters.from_piece(piece) << c << '|'; } } - bool chess960 = (cout.iword(0) != 0); // See set960() - cout << dottedLine << "Fen is: " << to_fen(chess960) << "\nKey is: " << st->key << endl; + cout << dottedLine << "Fen is: " << to_fen() << "\nKey is: " << st->key << endl; requestPending = false; } diff --git a/src/position.h b/src/position.h index 0a6ab136..5b1bc664 100644 --- a/src/position.h +++ b/src/position.h @@ -138,7 +138,7 @@ public: // Text input/output void from_fen(const std::string& fen); - const std::string to_fen(bool isChess960) const; + const std::string to_fen() const; void print(Move m = MOVE_NONE) const; // Copying @@ -258,6 +258,7 @@ public: // Other properties of the position bool opposite_colored_bishops() const; bool has_pawn_on_7th(Color c) const; + bool is_chess960() const; // Current thread ID searching on the position int thread() const; @@ -322,6 +323,7 @@ private: int castleRightsMask[64]; StateInfo startState; File initialKFile, initialKRFile, initialQRFile; + bool isChess960; int startPosPlyCounter; int threadID; int64_t nodes; @@ -551,6 +553,10 @@ inline bool Position::has_pawn_on_7th(Color c) const { return pieces(PAWN, c) & relative_rank_bb(c, RANK_7); } +inline bool Position::is_chess960() const { + return isChess960; +} + inline bool Position::move_is_capture(Move m) const { // Move must not be MOVE_NONE ! diff --git a/src/search.cpp b/src/search.cpp index 53a8bec9..0e249705 100644 --- a/src/search.cpp +++ b/src/search.cpp @@ -484,7 +484,7 @@ bool think(Position& pos, bool infinite, bool ponder, int time[], int increment[ std::string name = Options["Search Log Filename"].value(); LogFile.open(name.c_str(), std::ios::out | std::ios::app); - LogFile << "Searching: " << pos.to_fen(Options["UCI_Chess960"].value()) + LogFile << "Searching: " << pos.to_fen() << "\ninfinite: " << infinite << " ponder: " << ponder << " time: " << myTime @@ -570,7 +570,7 @@ namespace { Iteration = 1; // Send initial RootMoveList scoring (iteration 1) - cout << set960(Options["UCI_Chess960"].value()) // Is enough to set once at the beginning + cout << set960(pos.is_chess960()) // Is enough to set once at the beginning << "info depth " << Iteration << "\n" << rml[0].pv_info_to_uci(pos, alpha, beta) << endl;