diff --git a/DroidFish/src/org/petero/droidfish/gamelogic/DroidChessController.java b/DroidFish/src/org/petero/droidfish/gamelogic/DroidChessController.java index d036a90..aa2cfd4 100644 --- a/DroidFish/src/org/petero/droidfish/gamelogic/DroidChessController.java +++ b/DroidFish/src/org/petero/droidfish/gamelogic/DroidChessController.java @@ -887,12 +887,16 @@ public class DroidChessController { final Pair> ph = game.getUCIHistory(); Position currPos = new Position(game.currPos()); long now = System.currentTimeMillis(); + if (ponder) + game.timeController.advanceMove(1); int wTime = game.timeController.getRemainingTime(true, now); int bTime = game.timeController.getRemainingTime(false, now); int wInc = game.timeController.getIncrement(true); int bInc = game.timeController.getIncrement(false); boolean wtm = currPos.whiteMove; - int movesToGo = game.timeController.getMovesToTC(wtm); + int movesToGo = game.timeController.getMovesToTC(wtm ^ ponder); + if (ponder) + game.timeController.advanceMove(-1); final Move fPonderMove = ponder ? ponderMove : null; SearchRequest sr = DroidComputerPlayer.SearchRequest.searchRequest( searchId, now, ph.first, ph.second, currPos, diff --git a/DroidFish/src/org/petero/droidfish/gamelogic/TimeControl.java b/DroidFish/src/org/petero/droidfish/gamelogic/TimeControl.java index 6df051a..7f49705 100644 --- a/DroidFish/src/org/petero/droidfish/gamelogic/TimeControl.java +++ b/DroidFish/src/org/petero/droidfish/gamelogic/TimeControl.java @@ -66,6 +66,22 @@ public class TimeControl { elapsed = 0; } + /** Move current move "delta" half-moves forward. */ + public final void advanceMove(int delta) { + while (delta > 0) { + if (!whiteToMove) + currentMove++; + whiteToMove = !whiteToMove; + delta--; + } + while (delta < 0) { + whiteToMove = !whiteToMove; + if (!whiteToMove) + currentMove--; + delta++; + } + } + public final boolean clockRunning() { return timerT0 != 0; }