1
0
Fork 0
mirror of https://github.com/sockspls/badfish synced 2025-07-11 19:49:14 +00:00

Add behind_bb() helper to simplify code logic

No functional change.

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
This commit is contained in:
Marco Costalba 2008-12-09 17:39:40 +01:00
parent 67aac4889e
commit 389dc0e83b
2 changed files with 16 additions and 3 deletions

View file

@ -236,6 +236,19 @@ inline Bitboard in_front_bb(Color c, Square s) {
} }
/// behind_bb() takes a color and a rank or square as input, and returns a
/// bitboard representing all the squares on all ranks behind of the rank
/// (or square), from the given color's point of view.
inline Bitboard behind_bb(Color c, Rank r) {
return InFrontBB[opposite_color(c)][r];
}
inline Bitboard behind_bb(Color c, Square s) {
return in_front_bb(opposite_color(c), square_rank(s));
}
/// ray_bb() gives a bitboard representing all squares along the ray in a /// ray_bb() gives a bitboard representing all squares along the ray in a
/// given direction from a given square. /// given direction from a given square.

View file

@ -300,7 +300,7 @@ PawnInfo *PawnInfoTable::get_pawn_info(const Position &pos) {
|| isolated || isolated
|| chain || chain
|| (pos.pawn_attacks(us, s) & theirPawns) || (pos.pawn_attacks(us, s) & theirPawns)
|| (ourPawns & in_front_bb(them, r) & neighboring_files_bb(f))) || (ourPawns & behind_bb(us, r) & neighboring_files_bb(f)))
backward = false; backward = false;
else else
{ {
@ -324,7 +324,7 @@ PawnInfo *PawnInfoTable::get_pawn_info(const Position &pos) {
// Test for candidate passed pawn // Test for candidate passed pawn
candidate = !passed candidate = !passed
&& pos.file_is_half_open(them, f) && pos.file_is_half_open(them, f)
&& ( count_1s_max_15(neighboring_files_bb(f) & (in_front_bb(them, r) | rank_bb(r)) & ourPawns) && ( count_1s_max_15(neighboring_files_bb(f) & (behind_bb(us, r) | rank_bb(r)) & ourPawns)
- count_1s_max_15(neighboring_files_bb(f) & in_front_bb(us, r) & theirPawns) - count_1s_max_15(neighboring_files_bb(f) & in_front_bb(us, r) & theirPawns)
>= 0); >= 0);