Fix some asserts raised by is_ok()
authorMarco Costalba <mcostalba@gmail.com>
Thu, 20 Aug 2009 15:30:34 +0000 (16:30 +0100)
committerMarco Costalba <mcostalba@gmail.com>
Thu, 20 Aug 2009 16:48:52 +0000 (17:48 +0100)
commit95af1e28beb5257b26d1271e4c93e471f0f3c9f8
tree82be06404beb3fd71be8100fdd32155973e4605c
parente9aa20ad132b569c7a9e60322a25aeef94a3375a
Fix some asserts raised by is_ok()

There were two asserts.

The first was raised because is_ok() was called at the
beginning of do_castle_move() and this is wrong after
the last code reformatting because at that point the state
is already modified by the caller do_move().

The second, raised by debugIncrementalEval, was due to a
rounding error in compute_value() that occurs because
TempoValueEndgame was updated in an odd number by patch

"Merge Joona Kiiski evaluation tweaks" (3ed603cd) of 13/3/2009

This line in compute_value() is the guilty one:

result += (side_to_move() == WHITE)? TempoValue / 2 : -TempoValue / 2;

The fix is to increment TempoValueEndgame so to be even.

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