summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
d5f2e32)
Will be substituted by a better next patch.
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
castleRightsMask[make_square(initialQRFile, RANK_1)] ^= WHITE_OOO;
castleRightsMask[make_square(initialQRFile, RANK_8)] ^= BLACK_OOO;
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();
find_checkers();
st->key = compute_key();
/// Position::to_fen() returns a FEN representation of the position. In case
/// of Chess960 the Shredder-FEN notation is used. Mainly a debugging function.
/// 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 {
cout << c << pieceLetters.from_piece(piece) << c << '|';
}
}
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;
}
requestPending = false;
}
// Text input/output
void from_fen(const std::string& fen);
// 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
void print(Move m = MOVE_NONE) const;
// Copying
// Other properties of the position
bool opposite_colored_bishops() const;
bool has_pawn_on_7th(Color c) const;
// 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;
// Current thread ID searching on the position
int thread() const;
int castleRightsMask[64];
StateInfo startState;
File initialKFile, initialKRFile, initialQRFile;
int castleRightsMask[64];
StateInfo startState;
File initialKFile, initialKRFile, initialQRFile;
int startPosPlyCounter;
int threadID;
int64_t nodes;
int startPosPlyCounter;
int threadID;
int64_t nodes;
return pieces(PAWN, c) & relative_rank_bb(c, RANK_7);
}
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 !
inline bool Position::move_is_capture(Move m) const {
// Move must not be MOVE_NONE !
std::string name = Options["Search Log Filename"].value<std::string>();
LogFile.open(name.c_str(), std::ios::out | std::ios::app);
std::string name = Options["Search Log Filename"].value<std::string>();
LogFile.open(name.c_str(), std::ios::out | std::ios::app);
- LogFile << "Searching: " << pos.to_fen(Options["UCI_Chess960"].value<bool>())
+ LogFile << "Searching: " << pos.to_fen()
<< "\ninfinite: " << infinite
<< " ponder: " << ponder
<< " time: " << myTime
<< "\ninfinite: " << infinite
<< " ponder: " << ponder
<< " time: " << myTime
Iteration = 1;
// Send initial RootMoveList scoring (iteration 1)
Iteration = 1;
// Send initial RootMoveList scoring (iteration 1)
- cout << set960(Options["UCI_Chess960"].value<bool>()) // 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;
<< "info depth " << Iteration
<< "\n" << rml[0].pv_info_to_uci(pos, alpha, beta) << endl;