Так я довольно новичок в Java, но я делаю текстовую приключенческую игру для Compsci, и это мой код для уровней. < /p>
public static int level(int exp, Long time, int levelnum) {
//Time is the time elapsed since the program started
time = System.nanoTime();
//I divi de by 10,000,000 twice because that sqared is 100 trillion, the conversion factor between nano and second
exp = (int)(Math.round(time/10000000));
exp = Math.round(exp/10000000);
//The exp, or experience, is the percent, under 100, of the way to the next level. 1 is 10%, 2 is 20, etc.
while (exp > 10){
//This loop will check to make sure exp is under 10. If not, it will add one to the level number, and then subtract 10 from the exp and check again.
levelnum++;
exp = exp - 10;
}
int bar;
bar =1;
//Bar is here because originally, I planned on this all being one method, the next one and this, and so I placed it in meaning for it to act as the return value. It has stayed the return value.
System.out.println(levelnum + "\n" + exp + "\n" + time);
//That was for debugging purposes, so I could see the levels data as it processed.
progBar(levelnum, exp);
return bar;
}
public static void progBar(int levelnum, int exp){
char barOpen, barClose;
String bar = "";
String emptyBar;
//I realize now that I could have just "[" + bar + "]", but at the time i didnt think of that
barOpen = '[';
barClose = ']';
if (exp > 1){
//ok so if the experience is greater than 1, then we repeat the = that many times. That way, we don't repeat it when we have one
bar = "=".repeat(exp);
}else if (exp
Когда я запустил это вчера, он преуспел в за исключением уровня. Тем не менее, сегодня System.nanotime () начал давать чрезвычайно большое количество, даже на разных машинах, ни одно из которых точно не представляет время, которое прошло. Как я мог это исправить?
Подробнее здесь: https://stackoverflow.com/questions/658 ... h-time-has