Уменьшение голода переменная сверхурочная работа с использованием java - PullRequest
0 голосов
/ 26 мая 2020

Я опытный программист python, который впервые попадает в java, я пытаюсь написать текстовую приключенческую игру. Я хочу, чтобы в игре была установлена ​​переменная голода , равная 100, которая уменьшается на 5 каждые 15 секунд. Я пробовал делать время l oop, но это не go хорошо. Я много искал в Интернете, но не нашел ответа. Вот что я пробовал

package game;
public class game {
    int hunger = 100;
    int hungerDecreaser = 5;
    while (true) {
        Thread.Sleep(15000);
        hunger - hungerDecreaser;
    }
}

1 Ответ

0 голосов
/ 27 мая 2020

Вы должны перехватить InterruptedException, которое вызовет Thread.sleep(). hunger - hungerDecreaser также следует изменить на hunger -= hungerDecreaser.

Ниже приведен пример того, как вы можете использовать параллелизм.

Main. java file:

public class Main {
    public static void main(String[] args) {
        //create hunger handler
        Runnable hunger = new Hunger();
        //create hunger thread
        Thread thread = new Thread(hunger);
        //start thread
        thread.start();

        //rest of game
        System.out.println("This code will run at the same time as the hunger thread.");
    }
}

Голод. java файл:

public class Hunger implements Runnable{
    int hunger;
    int hungerDecreaser;

    Hunger() {
        hunger = 100;
        hungerDecreaser = 5;
    }

    @Override
    public void run() {
        while (true) {
            try {
                Thread.sleep(15000); // throws InterruptedException
            } catch (InterruptedException e) { // Exception must be caught or else code will not compile
                Thread.currentThread().interrupt();
            }
            hunger -= hungerDecreaser;
            System.out.println("The hunger has decreased to: " + hunger);
        }
    }
}
...