mirror of
https://github.com/HChaZZY/Stockfish.git
synced 2025-12-16 15:16:25 +08:00
Rename piece_attacks() in piece_attacks_from()
It is a bit longer but much easier to understand especially for people new to the sources. I remember it was not trivial for me to understand the returned attack bitboard refers to attacks launched from the given square and not attacking the given square. No functional change. Signed-off-by: Marco Costalba <mcostalba@gmail.com>
This commit is contained in:
@@ -253,7 +253,7 @@ MoveStack* generate_evasions(const Position& pos, MoveStack* mlist, Bitboard pin
|
||||
}
|
||||
|
||||
// Generate evasions for king
|
||||
Bitboard b1 = pos.piece_attacks<KING>(ksq) & ~pos.pieces_of_color(us) & ~checkersAttacks;
|
||||
Bitboard b1 = pos.piece_attacks_from<KING>(ksq) & ~pos.pieces_of_color(us) & ~checkersAttacks;
|
||||
while (b1)
|
||||
{
|
||||
to = pop_1st_bit(&b1);
|
||||
@@ -275,7 +275,7 @@ MoveStack* generate_evasions(const Position& pos, MoveStack* mlist, Bitboard pin
|
||||
// Generate captures of the checking piece
|
||||
|
||||
// Pawn captures
|
||||
b1 = pos.pawn_attacks(checksq, them) & pos.pieces(PAWN, us) & ~pinned;
|
||||
b1 = pos.pawn_attacks_from(checksq, them) & pos.pieces(PAWN, us) & ~pinned;
|
||||
while (b1)
|
||||
{
|
||||
from = pop_1st_bit(&b1);
|
||||
@@ -290,9 +290,9 @@ MoveStack* generate_evasions(const Position& pos, MoveStack* mlist, Bitboard pin
|
||||
}
|
||||
|
||||
// Pieces captures
|
||||
b1 = ( (pos.piece_attacks<KNIGHT>(checksq) & pos.pieces(KNIGHT, us))
|
||||
| (pos.piece_attacks<BISHOP>(checksq) & pos.pieces(BISHOP, QUEEN, us))
|
||||
| (pos.piece_attacks<ROOK>(checksq) & pos.pieces(ROOK, QUEEN, us)) ) & ~pinned;
|
||||
b1 = ( (pos.piece_attacks_from<KNIGHT>(checksq) & pos.pieces(KNIGHT, us))
|
||||
| (pos.piece_attacks_from<BISHOP>(checksq) & pos.pieces(BISHOP, QUEEN, us))
|
||||
| (pos.piece_attacks_from<ROOK>(checksq) & pos.pieces(ROOK, QUEEN, us)) ) & ~pinned;
|
||||
|
||||
while (b1)
|
||||
{
|
||||
@@ -326,7 +326,7 @@ MoveStack* generate_evasions(const Position& pos, MoveStack* mlist, Bitboard pin
|
||||
if (pos.ep_square() != SQ_NONE && (checkers & pos.pieces(PAWN, them)))
|
||||
{
|
||||
to = pos.ep_square();
|
||||
b1 = pos.pawn_attacks(to, them) & pos.pieces(PAWN, us);
|
||||
b1 = pos.pawn_attacks_from(to, them) & pos.pieces(PAWN, us);
|
||||
|
||||
// The checking pawn cannot be a discovered (bishop) check candidate
|
||||
// otherwise we were in check also before last double push move.
|
||||
@@ -557,7 +557,7 @@ bool move_is_legal(const Position& pos, const Move m, Bitboard pinned) {
|
||||
}
|
||||
|
||||
// Luckly we can handle all the other pieces in one go
|
||||
return ( bit_is_set(pos.piece_attacks(pc, from), to)
|
||||
return ( bit_is_set(pos.piece_attacks_from(pc, from), to)
|
||||
&& pos.pl_move_is_legal(m, pinned)
|
||||
&& !move_is_promotion(m));
|
||||
}
|
||||
@@ -598,7 +598,7 @@ namespace {
|
||||
for (int i = 0, e = pos.piece_count(us, Piece); i < e; i++)
|
||||
{
|
||||
from = pos.piece_list(us, Piece, i);
|
||||
b = pos.piece_attacks<Piece>(from) & target;
|
||||
b = pos.piece_attacks_from<Piece>(from) & target;
|
||||
SERIALIZE_MOVES(b);
|
||||
}
|
||||
return mlist;
|
||||
@@ -616,7 +616,7 @@ namespace {
|
||||
if (pinned && bit_is_set(pinned, from))
|
||||
continue;
|
||||
|
||||
b = pos.piece_attacks<Piece>(from) & target;
|
||||
b = pos.piece_attacks_from<Piece>(from) & target;
|
||||
SERIALIZE_MOVES(b);
|
||||
}
|
||||
return mlist;
|
||||
@@ -628,7 +628,7 @@ namespace {
|
||||
Bitboard b;
|
||||
Square from = pos.king_square(us);
|
||||
|
||||
b = pos.piece_attacks<KING>(from) & target;
|
||||
b = pos.piece_attacks_from<KING>(from) & target;
|
||||
SERIALIZE_MOVES(b);
|
||||
return mlist;
|
||||
}
|
||||
@@ -700,7 +700,7 @@ namespace {
|
||||
assert(Us != WHITE || square_rank(pos.ep_square()) == RANK_6);
|
||||
assert(Us != BLACK || square_rank(pos.ep_square()) == RANK_3);
|
||||
|
||||
Bitboard b1 = pawns & pos.pawn_attacks(pos.ep_square(), Them);
|
||||
Bitboard b1 = pawns & pos.pawn_attacks_from(pos.ep_square(), Them);
|
||||
assert(b1 != EmptyBoardBB);
|
||||
|
||||
while (b1)
|
||||
@@ -819,11 +819,11 @@ namespace {
|
||||
// Direct checks, single pawn pushes
|
||||
Bitboard empty = pos.empty_squares();
|
||||
b2 = move_pawns<Us, DELTA_N>(b1) & empty;
|
||||
b3 = b2 & pos.pawn_attacks(ksq, Them);
|
||||
b3 = b2 & pos.pawn_attacks_from(ksq, Them);
|
||||
SERIALIZE_MOVES_D(b3, -TDELTA_N);
|
||||
|
||||
// Direct checks, double pawn pushes
|
||||
b3 = move_pawns<Us, DELTA_N>(b2 & TRank3BB) & empty & pos.pawn_attacks(ksq, Them);
|
||||
b3 = move_pawns<Us, DELTA_N>(b2 & TRank3BB) & empty & pos.pawn_attacks_from(ksq, Them);
|
||||
SERIALIZE_MOVES_D(b3, -TDELTA_N -TDELTA_N);
|
||||
return mlist;
|
||||
}
|
||||
@@ -839,7 +839,7 @@ namespace {
|
||||
while (b)
|
||||
{
|
||||
Square from = pop_1st_bit(&b);
|
||||
Bitboard bb = pos.piece_attacks<Piece>(from) & pos.empty_squares();
|
||||
Bitboard bb = pos.piece_attacks_from<Piece>(from) & pos.empty_squares();
|
||||
if (Piece == KING)
|
||||
bb &= ~QueenPseudoAttacks[ksq];
|
||||
|
||||
@@ -850,7 +850,7 @@ namespace {
|
||||
b = target & ~dc;
|
||||
if (Piece != KING || b)
|
||||
{
|
||||
Bitboard checkSqs = pos.piece_attacks<Piece>(ksq) & pos.empty_squares();
|
||||
Bitboard checkSqs = pos.piece_attacks_from<Piece>(ksq) & pos.empty_squares();
|
||||
if (!checkSqs)
|
||||
return mlist;
|
||||
|
||||
@@ -862,7 +862,7 @@ namespace {
|
||||
|| (Piece == BISHOP && !(BishopPseudoAttacks[from] & checkSqs)))
|
||||
continue;
|
||||
|
||||
Bitboard bb = pos.piece_attacks<Piece>(from) & checkSqs;
|
||||
Bitboard bb = pos.piece_attacks_from<Piece>(from) & checkSqs;
|
||||
SERIALIZE_MOVES(bb);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user