2017-05-09 5 views
2

Ich versuche Clicker-Spiel zu machen und ich möchte Roboterpreis wie in Cookie-Clicker-Spiel zu multiplizieren. Ich habe versucht, die Preisberechnungsformel des Cookie-Klickers zu verwenden (http://cookieclicker.wikia.com/wiki/Building).Java Math.pow auf Ganzzahl gerundet gibt die gleiche Zahl mehrmals

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); 

      } 

Aber wenn ich das Programm ausführen, ich folgende Ausgabe:

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 

usw. Bitte helfen.

+2

Dieses "(int) Math.pow (1,15 cps)" Sie ein zu geben, deshalb –

+3

Sie wahrscheinlich wollte '(int) (100 * Math.pow (1,15 cps))'. – VGR

+1

Irgendwie ist cps Wert zwischen 0 bis 4, debuggen Sie Ihren Code –

Antwort

0

Da die Menschen in den Kommentaren darauf hingewiesen, stellt sich das Problem in dieser Codezeile robotPrice = 100 * (int)Math.pow(1.15, cps);

Sie nehmen 1,15, an die Macht cps erhöhen, dann alle Dezimalstellen abgeschnitten wird. Das würde Ihnen nur eine ganze Zahl geben und dann mit 100 multiplizieren. Sie möchten es mit 100 multiplizieren, bevor Sie alle Dezimalstellen entfernen. robotPrice = (int)(100 * Math.pow(1.15, cps));

+0

Danke! Es funktionierte. –

Verwandte Themen