Skip to content

Commit

Permalink
generate_checks: fix a bug in black double pawn push
Browse files Browse the repository at this point in the history
It was written pos.black_pawn_attacks(ksq) instead of
pos.white_pawn_attacks(ksq)

Updated to the undrlying pos.pawn_attacks(WHITE, ksq)

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
  • Loading branch information
mcostalba committed Oct 18, 2008
1 parent 35fd5ce commit 5abe8a0
Showing 1 changed file with 6 additions and 6 deletions.
12 changes: 6 additions & 6 deletions src/movegen.cpp
Expand Up @@ -152,19 +152,19 @@ int generate_checks(const Position& pos, MoveStack* mlist, Bitboard dc) {
// Direct checks. These are possible only for pawns on neighboring files
// of the enemy king

b1 &= (~dc & neighboring_files_bb(ksq));
b1 &= (~dc & neighboring_files_bb(ksq)); // FIXME why ~dc ??

// Direct checks, single pawn pushes
b2 = (b1 << 8) & empty;
b3 = b2 & pos.black_pawn_attacks(ksq);
while(b3)
b3 = b2 & pos.pawn_attacks(BLACK, ksq);
while (b3)
{
to = pop_1st_bit(&b3);
mlist[n++].move = make_move(to - DELTA_N, to);
}

// Direct checks, double pawn pushes
b3 = ((b2 & Rank3BB) << 8) & empty & pos.black_pawn_attacks(ksq);
b3 = ((b2 & Rank3BB) << 8) & empty & pos.pawn_attacks(BLACK, ksq);
while (b3)
{
to = pop_1st_bit(&b3);
Expand Down Expand Up @@ -203,15 +203,15 @@ int generate_checks(const Position& pos, MoveStack* mlist, Bitboard dc) {

// Direct checks, single pawn pushes:
b2 = (b1 >> 8) & empty;
b3 = b2 & pos.white_pawn_attacks(ksq);
b3 = b2 & pos.pawn_attacks(WHITE, ksq);
while (b3)
{
to = pop_1st_bit(&b3);
mlist[n++].move = make_move(to - DELTA_S, to);
}

// Direct checks, double pawn pushes
b3 = ((b2 & Rank6BB) >> 8) & empty & pos.black_pawn_attacks(ksq);
b3 = ((b2 & Rank6BB) >> 8) & empty & pos.pawn_attacks(WHITE, ksq);
while (b3)
{
to = pop_1st_bit(&b3);
Expand Down

0 comments on commit 5abe8a0

Please sign in to comment.