sách gpt4 ai đã đi

java - 当 Java 定时器过期时启动新的 Java 定时器

In lại 作者:行者123 更新时间:2023-12-01 12:52:51 27 4
mua khóa gpt4 Nike

所以基本上我尝试通过编写基于回合的游戏来重新回到 Java

到目前为止,您只能通过按按钮(x)来开始新一轮

if (x.getKeyChar() == 'o') {      

TimerRounds.cancel();
// methods to start the next round //
TimerRounds = new Timer();
// Timer Method
Timer Rounds.schedule(new TimerTask() {
công khai void run() {
System.out.println("Time is over, next round is started");
//methods to start the next round //
//Timer has to start from the beginning again//
//already tried to start the timer here, didn´t work//
}
}, 3000);

让我解释一下代码:如果玩家按 o,则开始新一轮,轮到下一个玩家。不过,除此之外,每一轮都有一个倒计时,如果倒计时结束,新一轮会自动开始

我设法做到了一切,但我不明白的是以下问题:计时器结束并开始新一轮,但我如何管理它自动为下一轮启动新计时器?到目前为止,它仅在按下按键时才会执行,但我希望它在上一轮倒计时结束时也启动一个新的计时器。

我希望你能解决这个问题,我的英语真的很糟糕如果能得到一些建议就太好了

1 Câu trả lời

您应该将代码的三个问题分开:您的实际回合结构(回合可以结束并可以开始新的回合)、游戏的用户界面(玩家可以在其中按下按钮)以及游戏的计时逻辑。

在您的回合结构类中,您将有一个 startNextTurn 方法,用于取消可能的待处理计时器并启动一个新计时器。在您的用户界面类中,您将调用该方法 - 不要在用户界面中执行计时器逻辑,让轮流结构执行此操作。

不要直接使用Bộ đếm thời gian,而是将其封装到一个提供两个方法的类中:cancelTimerstartTimer;计时器关闭时将调用 startNextTurn。根据您的需要,您甚至可以将它们组合到 restartTimer 方法中。

在设计这些抽象单元时,请考虑以下问题:什么样的数据和逻辑属于一起?操作必须做什么才能完成?例如,启动新的回合只有启动计时器才算完成,因此需要用方法封装,并且触发新回合的两个事件(用户输入和计时器)都会重用相同的逻辑。

关于java - 当 Java 定时器过期时启动新的 Java 定时器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24096061/

27 4 0
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com