https://github.com/official-stockfish/Stockfish/commit/
5c75c1c2fbb7bb4f0bf7c44fb855c415b788cbf7
introduced a capture_stage() function, but TB usage needs a pure capture() function.
closes https://github.com/official-stockfish/Stockfish/pull/4428
No functional change.
// Properties of moves
bool legal(Move m) const;
bool pseudo_legal(const Move m) const;
// Properties of moves
bool legal(Move m) const;
bool pseudo_legal(const Move m) const;
+ bool capture(Move m) const;
bool capture_stage(Move m) const;
bool gives_check(Move m) const;
Piece moved_piece(Move m) const;
bool capture_stage(Move m) const;
bool gives_check(Move m) const;
Piece moved_piece(Move m) const;
+inline bool Position::capture(Move m) const {
+ assert(is_ok(m));
+ return (!empty(to_sq(m)) && type_of(m) != CASTLING)
+ || type_of(m) == EN_PASSANT;
+}
+
// returns true if a move is generated from the capture stage
// having also queen promotions covered, i.e. consistency with the capture stage move generation
// is needed to avoid the generation of duplicate moves.
inline bool Position::capture_stage(Move m) const {
assert(is_ok(m));
// returns true if a move is generated from the capture stage
// having also queen promotions covered, i.e. consistency with the capture stage move generation
// is needed to avoid the generation of duplicate moves.
inline bool Position::capture_stage(Move m) const {
assert(is_ok(m));
- return (!empty(to_sq(m)) && type_of(m) != CASTLING)
- || (type_of(m) == PROMOTION && promotion_type(m) == QUEEN)
- || type_of(m) == EN_PASSANT;
+ return capture(m) || (type_of(m) == PROMOTION && promotion_type(m) == QUEEN);
}
inline Piece Position::captured_piece() const {
}
inline Piece Position::captured_piece() const {
for (const Move move : moveList)
{
for (const Move move : moveList)
{
- if ( !pos.capture_stage(move)
+ if ( !pos.capture(move)
&& (!CheckZeroingMoves || type_of(pos.moved_piece(move)) != PAWN))
continue;
&& (!CheckZeroingMoves || type_of(pos.moved_piece(move)) != PAWN))
continue;
for (const Move move : MoveList<LEGAL>(pos))
{
for (const Move move : MoveList<LEGAL>(pos))
{
- bool zeroing = pos.capture_stage(move) || type_of(pos.moved_piece(move)) == PAWN;
+ bool zeroing = pos.capture(move) || type_of(pos.moved_piece(move)) == PAWN;