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

Introduce asymmetric SEE.

No functional change
This commit is contained in:
Joona Kiiski 2013-03-30 19:49:49 +00:00
parent 0c1b40c5e2
commit 2097cd1221
2 changed files with 22 additions and 0 deletions

View file

@ -1148,6 +1148,16 @@ int Position::see_sign(Move m) const {
}
int Position::see(Move m) const {
return do_see<false>(m, 0);
}
int Position::see_asymm(Move m, int asymmThreshold) const
{
return do_see<true>(m, asymmThreshold);
}
template <bool Asymmetric>
int Position::do_see(Move m, int asymmThreshold) const {
Square from, to;
Bitboard occupied, attackers, stmAttackers;
@ -1224,6 +1234,16 @@ int Position::see(Move m) const {
} while (stmAttackers);
// FIXME: Document
if (Asymmetric)
{
for (int i = 0; i < slIndex ; slIndex += 2)
{
if (swapList[slIndex] < asymmThreshold)
swapList[slIndex] = - QueenValueMg * 16;
}
}
// Having built the swap list, we negamax through it to find the best
// achievable score from the point of view of the side to move.
while (--slIndex)

View file

@ -160,6 +160,8 @@ public:
// Static exchange evaluation
int see(Move m) const;
int see_sign(Move m) const;
int see_asymm(Move m, int asymmThreshold) const;
template <bool Asymmetric> int do_see(Move m, int asymmThreshold) const; //FIXME: private!!
// Accessing hash keys
Key key() const;