2017-05-09 2 views
2

J'essaye de faire le jeu de clicker et je veux que le prix de robot se multiplie comme dans le jeu de cookie clicker. J'ai essayé d'utiliser la formule de calcul de prix de cookie clicker (http://cookieclicker.wikia.com/wiki/Building).Java Math.pow arrondi à l'entier renvoie le même nombre plusieurs fois

if (cookies >= robotPrice) { 

       cookies -= robotPrice; 
       cps ++; 
       //Here is the algorithm 
       robotPrice = 100 * (int)Math.pow(1.15, cps); 

       System.out.println("robotPrice set to " + robotPrice); 

      } 

Mais quand je lance le programme, je reçois suivant la sortie:

robotPrice set to 100 
robotPrice set to 100 
robotPrice set to 100 
robotPrice set to 100 
robotPrice set to 200 
robotPrice set to 200 
robotPrice set to 200 
robotPrice set to 300 
robotPrice set to 300 

etc. S'il vous plaît aider.

+2

Ce "(int) Math.pow (1,15, cps)" vous donner un, c'est pourquoi –

+3

Vous avez probablement voulu '(int) (100 * Math.pow (1,15, cps))'. – VGR

+1

La valeur de cps est comprise entre 0 et 4, déboguer votre code –

Répondre

0

Comme les gens ont fait remarquer dans les commentaires, le problème se pose dans cette ligne de code robotPrice = 100 * (int)Math.pow(1.15, cps);

Vous prenez 1,15, élevant à la cps de puissance, puis couper hors toutes les décimales. Ce qui ne vous donnerait qu'un nombre entier et ensuite multiplier par 100. Vous voulez le multiplier par 100 avant d'enlever toutes les décimales. robotPrice = (int)(100 * Math.pow(1.15, cps));

+0

Merci! Ça a marché. –