mirror of
https://github.com/peterosterlund2/droidfish.git
synced 2025-12-12 00:52:40 +01:00
DroidFish: Handle 50-move draw rule when "probe at root" is enabled in
settings.
This commit is contained in:
@@ -280,18 +280,26 @@ public class Probe {
|
||||
UndoInfo ui = new UndoInfo();
|
||||
for (Move m : moveList) {
|
||||
pos.makeMove(m, ui);
|
||||
int pliesToDraw = Math.max(100 - pos.halfMoveClock, 1);
|
||||
GtbProbeResult res = gtbProbe(pos);
|
||||
pos.unMakeMove(m, ui);
|
||||
if (res.result == GtbProbeResult.UNKNOWN) {
|
||||
unknownMoves.add(m);
|
||||
} else {
|
||||
int wScore;
|
||||
if (res.result == GtbProbeResult.WMATE)
|
||||
wScore = MATE0 - res.pliesToMate;
|
||||
else if (res.result == GtbProbeResult.BMATE)
|
||||
wScore = -(MATE0 - res.pliesToMate);
|
||||
else
|
||||
if (res.result == GtbProbeResult.WMATE) {
|
||||
if (res.pliesToMate <= pliesToDraw)
|
||||
wScore = MATE0 - res.pliesToMate;
|
||||
else
|
||||
wScore = 1;
|
||||
} else if (res.result == GtbProbeResult.BMATE) {
|
||||
if (res.pliesToMate <= pliesToDraw)
|
||||
wScore = -(MATE0 - res.pliesToMate);
|
||||
else
|
||||
wScore = -1;
|
||||
} else {
|
||||
wScore = 0;
|
||||
}
|
||||
int score = pos.whiteMove ? wScore : -wScore;
|
||||
if (score > bestScore) {
|
||||
optimalMoves.clear();
|
||||
|
||||
Reference in New Issue
Block a user