mirror of
https://github.com/peterosterlund2/droidfish.git
synced 2025-12-10 08:02:40 +01:00
DroidFish: Changed some variables from long to int.
This commit is contained in:
@@ -3187,7 +3187,7 @@ public class DroidFish extends Activity implements GUIInterface {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private final String timeToString(long time) {
|
private final String timeToString(int time) {
|
||||||
int secs = (int)Math.floor((time + 999) / 1000.0);
|
int secs = (int)Math.floor((time + 999) / 1000.0);
|
||||||
boolean neg = false;
|
boolean neg = false;
|
||||||
if (secs < 0) {
|
if (secs < 0) {
|
||||||
@@ -3213,7 +3213,7 @@ public class DroidFish extends Activity implements GUIInterface {
|
|||||||
};
|
};
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setRemainingTime(long wTime, long bTime, long nextUpdate) {
|
public void setRemainingTime(int wTime, int bTime, int nextUpdate) {
|
||||||
if (ctrl.getGameMode().clocksActive()) {
|
if (ctrl.getGameMode().clocksActive()) {
|
||||||
whiteTitleText.setText(getString(R.string.white_square_character) + " " + timeToString(wTime));
|
whiteTitleText.setText(getString(R.string.white_square_character) + " " + timeToString(wTime));
|
||||||
blackTitleText.setText(getString(R.string.black_square_character) + " " + timeToString(bTime));
|
blackTitleText.setText(getString(R.string.black_square_character) + " " + timeToString(bTime));
|
||||||
|
|||||||
@@ -75,7 +75,7 @@ public interface GUIInterface {
|
|||||||
public void computerMoveMade();
|
public void computerMoveMade();
|
||||||
|
|
||||||
/** Report remaining thinking time to GUI. */
|
/** Report remaining thinking time to GUI. */
|
||||||
public void setRemainingTime(long wTime, long bTime, long nextUpdate);
|
public void setRemainingTime(int wTime, int bTime, int nextUpdate);
|
||||||
|
|
||||||
/** Update engine title text. */
|
/** Update engine title text. */
|
||||||
public void updateEngineTitle();
|
public void updateEngineTitle();
|
||||||
|
|||||||
@@ -205,7 +205,7 @@ public class DroidChessController {
|
|||||||
|
|
||||||
/** Serialize to byte array. */
|
/** Serialize to byte array. */
|
||||||
public final synchronized byte[] toByteArray() {
|
public final synchronized byte[] toByteArray() {
|
||||||
return game.tree.toByteArray();
|
return game.toByteArray();
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Return FEN string corresponding to a current position. */
|
/** Return FEN string corresponding to a current position. */
|
||||||
@@ -479,11 +479,11 @@ public class DroidChessController {
|
|||||||
/** Update remaining time and trigger GUI update of clocks. */
|
/** Update remaining time and trigger GUI update of clocks. */
|
||||||
public final synchronized void updateRemainingTime() {
|
public final synchronized void updateRemainingTime() {
|
||||||
long now = System.currentTimeMillis();
|
long now = System.currentTimeMillis();
|
||||||
long wTime = game.timeController.getRemainingTime(true, now);
|
int wTime = game.timeController.getRemainingTime(true, now);
|
||||||
long bTime = game.timeController.getRemainingTime(false, now);
|
int bTime = game.timeController.getRemainingTime(false, now);
|
||||||
long nextUpdate = 0;
|
int nextUpdate = 0;
|
||||||
if (game.timeController.clockRunning()) {
|
if (game.timeController.clockRunning()) {
|
||||||
long t = game.currPos().whiteMove ? wTime : bTime;
|
int t = game.currPos().whiteMove ? wTime : bTime;
|
||||||
nextUpdate = t % 1000;
|
nextUpdate = t % 1000;
|
||||||
if (nextUpdate < 0) nextUpdate += 1000;
|
if (nextUpdate < 0) nextUpdate += 1000;
|
||||||
nextUpdate += 1;
|
nextUpdate += 1;
|
||||||
|
|||||||
@@ -53,6 +53,11 @@ public class Game {
|
|||||||
updateTimeControl(true);
|
updateTimeControl(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** Serialize to byte array. */
|
||||||
|
final synchronized byte[] toByteArray() {
|
||||||
|
return tree.toByteArray();
|
||||||
|
}
|
||||||
|
|
||||||
public final void setGamePaused(boolean gamePaused) {
|
public final void setGamePaused(boolean gamePaused) {
|
||||||
if (gamePaused != this.gamePaused) {
|
if (gamePaused != this.gamePaused) {
|
||||||
this.gamePaused = gamePaused;
|
this.gamePaused = gamePaused;
|
||||||
|
|||||||
@@ -1598,7 +1598,7 @@ public class GameTree {
|
|||||||
sb.append('/');
|
sb.append('/');
|
||||||
}
|
}
|
||||||
sb.append(t.timeControl / 1000);
|
sb.append(t.timeControl / 1000);
|
||||||
int ms = (int)t.timeControl % 1000;
|
int ms = t.timeControl % 1000;
|
||||||
if (ms > 0) {
|
if (ms > 0) {
|
||||||
sb.append('.');
|
sb.append('.');
|
||||||
sb.append(String.format(Locale.US, "%03d", ms));
|
sb.append(String.format(Locale.US, "%03d", ms));
|
||||||
@@ -1606,7 +1606,7 @@ public class GameTree {
|
|||||||
if (t.increment > 0) {
|
if (t.increment > 0) {
|
||||||
sb.append('+');
|
sb.append('+');
|
||||||
sb.append(t.increment / 1000);
|
sb.append(t.increment / 1000);
|
||||||
ms = (int)t.increment % 1000;
|
ms = t.increment % 1000;
|
||||||
if (ms > 0) {
|
if (ms > 0) {
|
||||||
sb.append('.');
|
sb.append('.');
|
||||||
sb.append(String.format(Locale.US, "%03d", ms));
|
sb.append(String.format(Locale.US, "%03d", ms));
|
||||||
|
|||||||
@@ -26,13 +26,13 @@ import org.petero.droidfish.gamelogic.TimeControlData.TimeControlField;
|
|||||||
public class TimeControl {
|
public class TimeControl {
|
||||||
TimeControlData tcData;
|
TimeControlData tcData;
|
||||||
|
|
||||||
private long whiteBaseTime; // Current remaining time, or remaining time when clock started
|
private int whiteBaseTime; // Current remaining time, or remaining time when clock started
|
||||||
private long blackBaseTime; // Current remaining time, or remaining time when clock started
|
private int blackBaseTime; // Current remaining time, or remaining time when clock started
|
||||||
|
|
||||||
int currentMove;
|
int currentMove;
|
||||||
boolean whiteToMove;
|
boolean whiteToMove;
|
||||||
|
|
||||||
private long elapsed; // Accumulated elapsed time for this move.
|
private int elapsed; // Accumulated elapsed time for this move.
|
||||||
private long timerT0; // Time when timer started. 0 if timer is stopped.
|
private long timerT0; // Time when timer started. 0 if timer is stopped.
|
||||||
|
|
||||||
|
|
||||||
@@ -54,7 +54,7 @@ public class TimeControl {
|
|||||||
this.tcData = tcData;
|
this.tcData = tcData;
|
||||||
}
|
}
|
||||||
|
|
||||||
public final void setCurrentMove(int move, boolean whiteToMove, long whiteBaseTime, long blackBaseTime) {
|
public final void setCurrentMove(int move, boolean whiteToMove, int whiteBaseTime, int blackBaseTime) {
|
||||||
currentMove = move;
|
currentMove = move;
|
||||||
this.whiteToMove = whiteToMove;
|
this.whiteToMove = whiteToMove;
|
||||||
this.whiteBaseTime = whiteBaseTime;
|
this.whiteBaseTime = whiteBaseTime;
|
||||||
@@ -75,14 +75,12 @@ public class TimeControl {
|
|||||||
|
|
||||||
public final void stopTimer(long now) {
|
public final void stopTimer(long now) {
|
||||||
if (clockRunning()) {
|
if (clockRunning()) {
|
||||||
long timerT1 = now;
|
int currElapsed = (int)(now - timerT0);
|
||||||
long currElapsed = timerT1 - timerT0;
|
|
||||||
timerT0 = 0;
|
timerT0 = 0;
|
||||||
if (currElapsed > 0) {
|
if (currElapsed > 0)
|
||||||
elapsed += currElapsed;
|
elapsed += currElapsed;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
/** Compute new remaining time after a move is made. */
|
/** Compute new remaining time after a move is made. */
|
||||||
public final int moveMade(long now, boolean useIncrement) {
|
public final int moveMade(long now, boolean useIncrement) {
|
||||||
@@ -93,7 +91,7 @@ public class TimeControl {
|
|||||||
int tcIdx = tcInfo.first;
|
int tcIdx = tcInfo.first;
|
||||||
int movesToTc = tcInfo.second;
|
int movesToTc = tcInfo.second;
|
||||||
|
|
||||||
long remaining = getRemainingTime(whiteToMove, now);
|
int remaining = getRemainingTime(whiteToMove, now);
|
||||||
if (useIncrement) {
|
if (useIncrement) {
|
||||||
remaining += tc.get(tcIdx).increment;
|
remaining += tc.get(tcIdx).increment;
|
||||||
if (movesToTc == 1) {
|
if (movesToTc == 1) {
|
||||||
@@ -103,32 +101,31 @@ public class TimeControl {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
elapsed = 0;
|
elapsed = 0;
|
||||||
return (int)remaining;
|
return remaining;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Get remaining time */
|
/** Get remaining time */
|
||||||
public final int getRemainingTime(boolean whiteToMove, long now) {
|
public final int getRemainingTime(boolean whiteToMove, long now) {
|
||||||
long remaining = whiteToMove ? whiteBaseTime : blackBaseTime;
|
int remaining = whiteToMove ? whiteBaseTime : blackBaseTime;
|
||||||
if (whiteToMove == this.whiteToMove) {
|
if (whiteToMove == this.whiteToMove) {
|
||||||
remaining -= elapsed;
|
remaining -= elapsed;
|
||||||
if (timerT0 != 0) {
|
if (timerT0 != 0)
|
||||||
remaining -= now - timerT0;
|
remaining -= now - timerT0;
|
||||||
}
|
}
|
||||||
}
|
return remaining;
|
||||||
return (int)remaining;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Get initial thinking time in milliseconds. */
|
/** Get initial thinking time in milliseconds. */
|
||||||
public final int getInitialTime(boolean whiteMove) {
|
public final int getInitialTime(boolean whiteMove) {
|
||||||
ArrayList<TimeControlField> tc = tcData.getTC(whiteMove);
|
ArrayList<TimeControlField> tc = tcData.getTC(whiteMove);
|
||||||
return (int)tc.get(0).timeControl;
|
return tc.get(0).timeControl;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Get time increment in milliseconds after playing next move. */
|
/** Get time increment in milliseconds after playing next move. */
|
||||||
public final int getIncrement(boolean whiteMove) {
|
public final int getIncrement(boolean whiteMove) {
|
||||||
ArrayList<TimeControlField> tc = tcData.getTC(whiteMove);
|
ArrayList<TimeControlField> tc = tcData.getTC(whiteMove);
|
||||||
int tcIdx = getCurrentTC(whiteMove).first;
|
int tcIdx = getCurrentTC(whiteMove).first;
|
||||||
return (int)tc.get(tcIdx).increment;
|
return tc.get(tcIdx).increment;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Return number of moves to the next time control, or 0 if "sudden death". */
|
/** Return number of moves to the next time control, or 0 if "sudden death". */
|
||||||
@@ -141,7 +138,7 @@ public class TimeControl {
|
|||||||
ArrayList<TimeControlField> tc = tcData.getTC(whiteMove);
|
ArrayList<TimeControlField> tc = tcData.getTC(whiteMove);
|
||||||
int tcIdx = getCurrentTC(whiteMove).first;
|
int tcIdx = getCurrentTC(whiteMove).first;
|
||||||
TimeControlField t = tc.get(tcIdx);
|
TimeControlField t = tc.get(tcIdx);
|
||||||
return new int[]{(int)t.timeControl, t.movesPerSession, (int)t.increment};
|
return new int[]{t.timeControl, t.movesPerSession, t.increment};
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Return the current active time control index and number of moves to next time control. */
|
/** Return the current active time control index and number of moves to next time control. */
|
||||||
|
|||||||
@@ -4,11 +4,11 @@ import java.util.ArrayList;
|
|||||||
|
|
||||||
public final class TimeControlData {
|
public final class TimeControlData {
|
||||||
public static final class TimeControlField {
|
public static final class TimeControlField {
|
||||||
long timeControl; // Time in milliseconds
|
int timeControl; // Time in milliseconds
|
||||||
int movesPerSession;
|
int movesPerSession;
|
||||||
long increment; // Increment in milliseconds
|
int increment; // Increment in milliseconds
|
||||||
|
|
||||||
public TimeControlField(long time, int moves, long inc) {
|
public TimeControlField(int time, int moves, int inc) {
|
||||||
timeControl = time;
|
timeControl = time;
|
||||||
movesPerSession = moves;
|
movesPerSession = moves;
|
||||||
increment = inc;
|
increment = inc;
|
||||||
@@ -26,7 +26,7 @@ public final class TimeControlData {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/** Set a single time control for both white and black. */
|
/** Set a single time control for both white and black. */
|
||||||
public final void setTimeControl(long time, int moves, long inc) {
|
public final void setTimeControl(int time, int moves, int inc) {
|
||||||
tcW = new ArrayList<TimeControlField>();
|
tcW = new ArrayList<TimeControlField>();
|
||||||
tcW.add(new TimeControlField(time, moves, inc));
|
tcW.add(new TimeControlField(time, moves, inc));
|
||||||
tcB = new ArrayList<TimeControlField>();
|
tcB = new ArrayList<TimeControlField>();
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ public class TimeControlTest extends TestCase {
|
|||||||
|
|
||||||
public void testElapsedTime() {
|
public void testElapsedTime() {
|
||||||
TimeControl tc = new TimeControl();
|
TimeControl tc = new TimeControl();
|
||||||
long totTime = 5 * 60 * 1000;
|
int totTime = 5 * 60 * 1000;
|
||||||
long t0 = 1000;
|
long t0 = 1000;
|
||||||
TimeControlData tcData = new TimeControlData();
|
TimeControlData tcData = new TimeControlData();
|
||||||
tcData.setTimeControl(totTime, 0, 0);
|
tcData.setTimeControl(totTime, 0, 0);
|
||||||
@@ -113,7 +113,7 @@ public class TimeControlTest extends TestCase {
|
|||||||
assertEquals(40, tc.getMovesToTC(false));
|
assertEquals(40, tc.getMovesToTC(false));
|
||||||
}
|
}
|
||||||
|
|
||||||
private TimeControlField tcf(long time, int moves, long inc) {
|
private TimeControlField tcf(int time, int moves, int inc) {
|
||||||
return new TimeControlField(time, moves, inc);
|
return new TimeControlField(time, moves, inc);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -159,8 +159,8 @@ public class TimeControlTest extends TestCase {
|
|||||||
assertEquals(1000, tc.getIncrement(false));
|
assertEquals(1000, tc.getIncrement(false));
|
||||||
|
|
||||||
|
|
||||||
long wBaseTime = 60*1000;
|
int wBaseTime = 60*1000;
|
||||||
long bBaseTime = 50*1000;
|
int bBaseTime = 50*1000;
|
||||||
tc.setCurrentMove(30, true, wBaseTime, bBaseTime);
|
tc.setCurrentMove(30, true, wBaseTime, bBaseTime);
|
||||||
tc.startTimer(1500);
|
tc.startTimer(1500);
|
||||||
wBaseTime = tc.moveMade(1500 + 3000, true);
|
wBaseTime = tc.moveMade(1500 + 3000, true);
|
||||||
@@ -179,15 +179,15 @@ public class TimeControlTest extends TestCase {
|
|||||||
|
|
||||||
public void testExtraTime() {
|
public void testExtraTime() {
|
||||||
TimeControl tc = new TimeControl();
|
TimeControl tc = new TimeControl();
|
||||||
final long timeCont = 60 * 1000;
|
final int timeCont = 60 * 1000;
|
||||||
int wBaseTime = (int)timeCont;
|
int wBaseTime = timeCont;
|
||||||
int bBaseTime = (int)timeCont;
|
int bBaseTime = timeCont;
|
||||||
final long inc = 700;
|
final int inc = 700;
|
||||||
TimeControlData tcData = new TimeControlData();
|
TimeControlData tcData = new TimeControlData();
|
||||||
tcData.setTimeControl(timeCont, 5, inc);
|
tcData.setTimeControl(timeCont, 5, inc);
|
||||||
tc.setTimeControl(tcData);
|
tc.setTimeControl(tcData);
|
||||||
tc.setCurrentMove(5, true, wBaseTime, bBaseTime);
|
tc.setCurrentMove(5, true, wBaseTime, bBaseTime);
|
||||||
long t0 = 1342134;
|
int t0 = 1342134;
|
||||||
assertEquals(timeCont, tc.getRemainingTime(true, t0 + 4711));
|
assertEquals(timeCont, tc.getRemainingTime(true, t0 + 4711));
|
||||||
assertEquals(timeCont, tc.getRemainingTime(false, t0 + 4711));
|
assertEquals(timeCont, tc.getRemainingTime(false, t0 + 4711));
|
||||||
|
|
||||||
@@ -219,7 +219,7 @@ public class TimeControlTest extends TestCase {
|
|||||||
// No extra time when passing time control in analysis mode
|
// No extra time when passing time control in analysis mode
|
||||||
tcData.setTimeControl(timeCont, 1, inc);
|
tcData.setTimeControl(timeCont, 1, inc);
|
||||||
tc.setTimeControl(tcData);
|
tc.setTimeControl(tcData);
|
||||||
wBaseTime = bBaseTime = (int)timeCont;
|
wBaseTime = bBaseTime = timeCont;
|
||||||
tc.setCurrentMove(1, true, wBaseTime, bBaseTime);
|
tc.setCurrentMove(1, true, wBaseTime, bBaseTime);
|
||||||
tc.startTimer(t0 + 1000);
|
tc.startTimer(t0 + 1000);
|
||||||
wBaseTime = tc.moveMade(t0 + 3000, false);
|
wBaseTime = tc.moveMade(t0 + 3000, false);
|
||||||
|
|||||||
Reference in New Issue
Block a user