做了一个简单的模拟,代码如下:
你的问题出要是出在控制上。
我估计你这个方法中的isBlack 这个变量是自动切换的,
黑棋下完了,isBlack = false; 白棋下完了 isBlack = true;
这样,就会出问题,因为你的线程是没有停止的,所以,blackTime--; 或 whiteTime--; 是一直在进行的。而且 canPlay 没有用上。
你看一下 if (isBlack) 中的代码,这是我没有改动的
你再看一下 else 中的代码, 那是我改过的。
可以不会出现负数。
再一个,我觉得只要有一方时间到了,就该停止线程,canPlay的作用应该就是停止线程。
一方时间用完,应该是负吧,不该等到双方时间都 用完啊。
新游戏时,重新启动线程
----------------------------------------------------------------------------------------------
import javax.swing.JOptionPane;
public class Time extends Thread {
int maxTime = 1;
boolean isBlack = false;
int blackTime = 60;
int whiteTime = 60;
boolean canPlay = true;
public static void main(String[] args) {