#include "bitboard.h"
#include "evaluate.h"
+#include "psqt.h"
#include "types.h"
#include "nnue/nnue_accumulator.h"
+namespace Stockfish {
/// StateInfo struct stores information needed to restore a Position object to
/// its previous state when we retract a move. Whenever a move is made on the
// FEN string input/output
Position& set(const std::string& fenStr, bool isChess960, StateInfo* si, Thread* th);
Position& set(const std::string& code, Color c, StateInfo* si);
- const std::string fen() const;
+ std::string fen() const;
// Position representation
Bitboard pieces(PieceType pt) const;
bool chess960;
};
-namespace PSQT {
- extern Score psq[PIECE_NB][SQUARE_NB];
-}
-
extern std::ostream& operator<<(std::ostream& os, const Position& pos);
inline Color Position::side_to_move() const {
inline bool Position::advanced_pawn_push(Move m) const {
return type_of(moved_piece(m)) == PAWN
- && relative_rank(sideToMove, to_sq(m)) > RANK_5;
+ && relative_rank(sideToMove, to_sq(m)) > RANK_6;
}
inline int Position::pawns_on_same_color_squares(Color c, Square s) const {
}
inline Key Position::key() const {
- return st->key;
+ return st->rule50 < 14 ? st->key
+ : st->key ^ make_key((st->rule50 - 14) / 8);
}
inline Key Position::pawn_key() const {
return st;
}
+} // namespace Stockfish
+
#endif // #ifndef POSITION_H_INCLUDED