Как добавить приращение к переменной так часто, как другая превосходит определенное значение? - PullRequest
0 голосов
/ 29 ноября 2018

Я пишу программу для себя, для изучения Java.Это какой-то эксперимент.У него есть классы, такие как игрок, действия, монстры, предметы, игровой процесс.В моем классе проигрыватель, я добавил конструктор, который я назвал lvlUp с параметром exp.Мой вопрос: что я должен написать, когда я хочу увеличить уровень игрока, когда он достигает 100 опыта, 200 опыта, 300 опыта и т. Д. Когда у него есть 100 опыта, он поднимается на один уровень, когда у него есть 200 опытаон получает 2 подъема и т.д.Кстати, опыт случайный, поэтому я хотел бы также распечатать оставшийся опыт.Например, он убивает одного монстра и зарабатывает 245 опыта, что должно быть 2 подъема уровня и 45 опыта.это мой код атм:

public int lvlUp(int exp) {
    if (exp < 100) {
        System.out.println("LvL: " + this.lvl + " You have " + exp + " experience!");
    } else if (exp == 100) {
        System.out.println("Level up !!!");
        exp = 0;
        this.lvl++;
    } else if (exp > 100) {
        System.out.println("Level up !!!");
        exp = exp - 100;
        this.lvl++;
        System.out.println("LvL: " + this.lvl + " You have " + exp + " experience!");
    }
    return this.lvl++;

Ответы [ 3 ]

0 голосов
/ 29 ноября 2018

У вас должна быть глобальная переменная, такая как lvlBar.Это будет служить счетчиком уровня для игрока, чтобы увидеть его опыт, необходимый для повышения уровня.

0 голосов
/ 29 ноября 2018

Во-первых, вы должны выяснить, сколько уровней игрок должен получить.Чтобы вычислить это, разделите на 100.

int levels = exp / 100;

Так как это целочисленная арифметика, она будет усечена для вас.(Таким образом, в вашем примере exp = 245 уровень будет 2.

Далее, используйте это значение, чтобы выяснить, сколько опыта осталось у пользователя.

exp = exp - (levels * 100);

Наконец, добавьтеновые уровни.

this.lvl += levels;
0 голосов
/ 29 ноября 2018

Думаю, это сделает работу

// your class code
int exp = 0;
int lvl = 0;
// ...

public int lvlUp(int exp){  // increase the experience by exp and update the level
    this.exp += exp;
    lvl = exp / 100;  // integer division
    System.out.println("Levels: " + lvl + ", experience left: " + exp % 100);
    return lvl;
}
...