1
0
Fork 0
mirror of https://github.com/sockspls/badfish synced 2025-04-30 16:53:09 +00:00

Correctly set mateThreat in search()

We do not accept null search returned mate values,
but we always do a full search in those cases.

So the variable mateThreat that is set only if null move
search returns a mate value is always false.

Restore the functionality of mateThreat moving the
assignement where it can be triggered.

After 999 games at 1+0

Mod vs Orig +253 =517 -229 51.20%  +8 ELO

Bug reported by xiaozhi

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
This commit is contained in:
Marco Costalba 2009-07-18 11:28:09 +01:00
parent 15eb59683e
commit 1cc44bcaae

View file

@ -1251,6 +1251,9 @@ namespace {
if (value_is_mate(nullValue))
{
if (nullValue == value_mated_in(ply + 2))
mateThreat = true;
/* Do not return unproven mates */
}
else if (nullValue >= beta)
@ -1269,9 +1272,6 @@ namespace {
// move which was reduced. If a connection is found, return a fail
// low score (which will cause the reduced move to fail high in the
// parent node, which will trigger a re-search with full depth).
if (nullValue == value_mated_in(ply + 2))
mateThreat = true;
ss[ply].threatMove = ss[ply + 1].currentMove;
if ( depth < ThreatDepth
&& ss[ply - 1].reduction