Bug wrong evasion detection for king moves
authorMarco Costalba <mcostalba@gmail.com>
Sun, 22 May 2011 09:57:06 +0000 (10:57 +0100)
committerMarco Costalba <mcostalba@gmail.com>
Sun, 22 May 2011 10:51:28 +0000 (11:51 +0100)
commit13fe7ee4df30f5bc15189870ebf5d166e26d9906
treee6028502bef49f0ead86dc212efae4b4c3fcba85
parent21fc66c2466f86a7ee12221e197b6e6708f4512b
Bug wrong evasion detection for king moves

When we are in check and we move the king then testing with
pl_move_is_legal(m, pinned) is not enough becuase we cannot
rely on attackers_to() but we have to explicitly remove the
king form the occupied bitboard to catch as invalid moves like
b1a1 when opposite queen is on c1.

Our move generator already produces correct evasions so we
just need to add the extra verification to move_is_legal().

No functional change.

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
src/position.cpp
src/position.h