Я делаю очень простой автоматический «Cookie Clicker» программу, и я получил проблему с этой строки кода:не будет обновлять значение
z = Math.ceil(15*java.lang.Math.pow(1.15, x));
когда х обновляется в Условный оператор этой строка кода, похоже, не понимает этого и z продолжает использовать инициализированное значение x (которое равно 0) и остается равным 15 (15 * 1,15 ф 0).
Кто-нибудь знает, что делать?
public class Tryout {
public static void main(String[] args) {
// TODO Auto-generated method stub
double x = 0; //Number of Cookie Clickers
double z; // Cost of the Cookie Clickers
double cookies = 0; //Amount of Cookies
double count = 0; //Additional amount of cookies per second from the Cookie Clickers
final double constant = 0.1; //Amount of CPS (cookies per second) you get from 1 Cookie Clicker
z = Math.ceil(15*java.lang.Math.pow(1.15, x)); //with 0 CC the cost is 15, with 1 CC the cost is 18, with 2 CC...
while (1>0) { // the game loop, (infinity loop)
if(cookies >= z) { //If you got enough cookies you autobuy a new CC and the number of CC's increase as well as the cost of a CC
System.out.println("cookies" + cookies); //Amount of cookies before you buy
System.out.println("You bought a new Cookie Clicker; +0.1 cookie each second!");
System.out.println(cookies + " - " + z + " = " + (cookies - z));
cookies = cookies - z;
x++;
}
try { //delayer (Uptades 1 time per second)
Thread.sleep(1000);
} catch (InterruptedException ex) {
Thread.currentThread().interrupt();
}
count = x*constant;
cookies = cookies + 1 + count;
Math.round(cookies);
System.out.println("cookies; " + cookies); // Your current amount of cookies
}
}
}
'z = Math.ceil (15 * java.lang.Math.pow (1.15, x));' вызывает 'z' для этого ** в этой точке **. Он не говорит программе перепрограммировать 'z' при каждом изменении' x'. Вы должны сделать это сами. – ajb
Чтобы посмотреть на это по-другому: 'z' является _variable_, который содержит одно значение, и _nothing else_; 'z' не имеет« функции »или« формулы ». – ajb
Спасибо за ответ, я не понял. – ShadowNinja