我在我的 Java 游戏小程序中设置计算机与计算机循环时遇到问题。我已经尝试了 3 天来有效地在两个计算机玩家回合之间添加一秒的延迟,同时还重新绘制了棋盘。我尝试过 try/catch/thread.sleep 和 wait 以及其他一些技巧,但是没有一个成功。在程序的当前状态下,当启动计算机对计算机游戏时,程序会在游戏期间卡住(移动之间有一秒的延迟),然后在游戏结束时显示最终棋盘。我怎样才能使程序在每次移动后重新绘制/延迟?从我完成的所有阅读来看,我知道以下实现将不起作用,但我的问题是我无法弄清楚如何以其他方式做到这一点。 提前致谢!
以下代码位于我的 actionPerformed 监听器方法内
if (event.getSource() == startAIvAI)
{
drawing.clear();
while (drawing.hasWon() == -1 && !drawing.isFull())
{
go1();
repaint();
try {
Thread.sleep(1000);
} catch (Exception e) {}
go2();
repaint();
try {
Thread.sleep(1000);
} catch (Exception e) {}
}
}
最佳答案
当您调用Thread.sleep(1000);
时,您认为您正在暂停哪个线程?假设您的代码以 if (event.getSource() == startAIvAI)
开头,则可能是一个处理事件。
您应该阅读本文以了解该怎么做:Sleep method locks my GUI
关于java - 计算机与计算机循环 Java Applet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37569381/