// The piece on a given square
Piece piece_on(Square s) const;
bool square_is_empty(Square s) const;
- bool square_is_occupied(Square s) const;
// Side to move
Color side_to_move() const;
// Bitboard representation of the position
Bitboard empty_squares() const;
Bitboard occupied_squares() const;
- Bitboard pieces_of_color(Color c) const;
+ Bitboard pieces(Color c) const;
Bitboard pieces(PieceType pt) const;
Bitboard pieces(PieceType pt, Color c) const;
Bitboard pieces(PieceType pt1, PieceType pt2) const;
bool in_check() const;
// Piece lists
- Square piece_list(Color c, PieceType pt, int index) const;
- const Square* piece_list_begin(Color c, PieceType pt) const;
+ const Square* piece_list(Color c, PieceType pt) const;
// Information about attacks to or from a given square
Bitboard attackers_to(Square s) const;
Key compute_material_key() const;
// Computing incremental evaluation scores and material counts
- static Score pst(Color c, PieceType pt, Square s);
+ static Score pst(Piece p, Square s);
Score compute_value() const;
Value compute_non_pawn_material(Color c) const;
return piece_on(s) == PIECE_NONE;
}
-inline bool Position::square_is_occupied(Square s) const {
- return !square_is_empty(s);
-}
-
inline Color Position::side_to_move() const {
return sideToMove;
}
return ~occupied_squares();
}
-inline Bitboard Position::pieces_of_color(Color c) const {
+inline Bitboard Position::pieces(Color c) const {
return byColorBB[c];
}
return pieceCount[c][pt];
}
-inline Square Position::piece_list(Color c, PieceType pt, int idx) const {
- return pieceList[c][pt][idx];
-}
-
-inline const Square* Position::piece_list_begin(Color c, PieceType pt) const {
+inline const Square* Position::piece_list(Color c, PieceType pt) const {
return pieceList[c][pt];
}
return st->materialKey;
}
-inline Score Position::pst(Color c, PieceType pt, Square s) {
- return PieceSquareTable[make_piece(c, pt)][s];
+inline Score Position::pst(Piece p, Square s) {
+ return PieceSquareTable[p][s];
}
inline Score Position::pst_delta(Piece piece, Square from, Square to) {
inline bool Position::opposite_colored_bishops() const {
return piece_count(WHITE, BISHOP) == 1 && piece_count(BLACK, BISHOP) == 1
- && opposite_color_squares(piece_list(WHITE, BISHOP, 0), piece_list(BLACK, BISHOP, 0));
+ && opposite_color_squares(piece_list(WHITE, BISHOP)[0], piece_list(BLACK, BISHOP)[0]);
}
inline bool Position::has_pawn_on_7th(Color c) const {