Php-Matheproblem

  • Themenstarter Themenstarter Lumakrieger
  • Beginndatum Beginndatum
L

Lumakrieger

Hi,

ich habe ein Mathematikproblem in PHP. Vielleicht kann mir hier einer helfen, es zu lösen! Eventuell übersehe ich einen logischen Fehler oder ich mache einfach alles verkehrt.

PHP:
if($f == 0){$wf = 1;}else if($f == 1){$wf = (200/100);}else{$wf = (200/100)^$f;}

$kf = $ekf*$wf;

$f steht für die Stufe einer Forschung in meinem Testbrowsergame
$kf soll den Preis für die nächste Forschungsstufe angeben.
$ekf ist der Grundpreis, also den Preis, welchen man bezahlen muss, wenn man von Stufe 0 auf Stufe 1 aufwerten will. $ekf ist bei mir in der Datenbank gespeichert.

Dieses Skript soll den Preis für die nächste Stufe ($kf) ausrechnen unter verschiedenen Bedingungen:

if($f == 0){$wf = 1;}
Wenn Stufe der Forschung == 0 dann Grundpreis mal 1, also dann den ganz normalen Grundpreis.


else if($f == 1){$wf = (200/100);}
Wenn Stufe der Forschung == 1 dann Grundpreis mal 2, denn der Preis soll sich jede Stufe verdoppeln.


else{$wf = (200/100)^$f;}
Bei anderen Stufen der Forschung muss Grundpreis mal (2 hoch jetzige Stufe der Forschung) genommen werden, schliesslich will ich nicht für alle unendlich Stufen extra noch eine eigene else if Zeile schreiben;)

Beispiele:
wenn Stufe == 2 dann Grundpreis mal 2^2 also mal 4
oder wenn Stufe == 3 dann Grundpreis mal 2^3 also mal 8
oder wenn Stufe == 4 dann Grundpreis mal 2^4 also mal 16
usw.

Normaleweise ist das ja kein Problem, aber in meinem Testbrowsergame mit insgesammt 12 verschiedenen Forschungen und die dazugehörigen 12 Rechnungen im Stil der oben angegebenen dieses logische System nur, wenn die Stufe der Forschung erst auf 0 oder 1 ist. Sobald irgendeine Forschung schon auf Stufe 2 oder höher ist, spielen die Preise für die nächste Stufe verrückt. Also ab dem Punkt, wo ich mich entschlossen habe, die unendlich vielen weiteren else if Zeilen wegzulassen und in eine Zeile zu kompirmieren. Das selbe Problem gibt es nicht nur beim Preis der Stufen, sondern auch bei der Bepunktung der Stufen. Schliesslich bekommt man für jede Stufe auch Punkte. Dabei gilt auch wieder, je höher die Stufe, um so mehr Punkte bekommt man. In meinem Fall verdoppeln sich die Punkte ebenfalls jede Stufe. Bei den Gebäuden allerdings habe ich genau die selbe Rechnung benutzt, um den immer teurer werdenen Preis auszurechnen. Da steigt der Preis jede Stufe um 16% an, aber das ist wohl egal. Aber bei den Gebäuden funktioniert es bisher ziemlich gut. Hat jemand eine Ahnung, was ich da vielleicht falsch mache oder hat jemand eine bessere Idee, wie ich mein Problem anders lösen könnte?

Danke im Vorraus, Luma
 
aha! wann darf ich denn ^ benutzen? Bei den Gebäuden ging des anscheinend auch mit ^
Irgendwie blick ich bei der Exponentialfunkion auch nicht so richtig durch! Kann mir jemand mal mein Code in dieser Weise posten? Wäre nett, Luma
 
Geil :eek: !
Es geht perfekt! Danke, Danke!

Was es alles für Funktionen in PHP gibt ;) Aber verstehen, warum der des net auch einfach mit ^ hinbekommt, tue ich nicht!
 
Zurück