Обычно я делаю поворот таймера для сетевой игры, поэтому, если таймер нажмет 0, ход будет отдан другому игроку. Если игрок делает ход, а таймер по-прежнему не достигает 0, счетчик сбрасывается с 10. Я не знаю своих ошибок по таймеру.
timer.scheduleAtFixedRate(new TimerTask() {
@Override
public void run() {
counter++;
if(counter % second == 0){
System.out.println("Times Up");
TimeOut();
}
if(command.startsWith("BOX1")) {
counter=0;
counter++;
}
if(command.startsWith("BOX2")) {
counter=0;
counter++;
}
if(command.startsWith("BOX3")) {
counter=0;
counter++;
}
if(command.startsWith("BOX4")) {
counter=0;
counter++;
}
if(command.startsWith("BOX5")) {
counter=0;
counter++;
}
if(command.startsWith("BOX6")) {
counter=0;
counter++;
}
if(command.startsWith("BOX7")) {
counter=0;
counter++;
}
if(command.startsWith("BOX8")) {
counter=0;
counter++;
}
if(command.startsWith("BOX9")) {
counter=0;
counter++;
}
else{
System.out.println("Time left:" + (second - (counter %second)) );
}
}
}, 3000, 3000);
Таким образом, когда мой сервер получает BOX1 (клиент делает движение), таймер должен быть установлен в 0 и снова увеличен, но мой счетчик застрял на 1