所以,基本上,我有一个拥有挥杆计时器的挥杆游戏。这是在计算机计算出它将要做什么之后等待,直到它转动,因为人类看起来不那么快。当该计时器执行时,下一轮开始,计算机AI轮到它。 事实上,当两个玩家都是计算机时,这理论上会将计时器无限制地叠加在一起,因为在计时器内部,(间接地)将再次(再次)再次调用相同的计时器。这会产生数据泄漏吗?如果是这样,我还能做些什么来实现同样的"等待"过程
所以,在伪代码中,这就是发生的事情:
public void computerTurn() {
...
new Timer(1000, new ActionListener() {
....
if (foo)
computerTurn()
}
}
答案 0 :(得分:1)
你可以这样做:
ActionListener listener = (e) -> {
if (!foo) { // if not foo, don't repeat anymore
((Timer)e.getSource()).stop();
}
}
Timer timer = new Timer(1000, listener);
timer.setRepeats(true);
timer.start();