2017-12-06 13 views
-2

Mein Startwert ist 18, für jede Erhöhung +1 in dieser Zahl sollte die Erhöhung des Wertes sinken. Grundsätzlich wird es schwieriger, diesen Wert zu erhöhen, wenn Sie mehr davon haben. Der Anstieg sollte um 2% niedriger sein als der vorherige Anstieg (siehe unten).Verringern Sie den Wert in der Datenbank

Im Moment habe ich nur einen stetigen Anstieg von 2 für jeden Lauf.

$Strengthvalue = 2 + $row['strength']; 
  • 18 = +2 (Zunahme)
  • 19 = +1,96 (Zunahme)
  • 20 = +1,92 (Zunahme)
+0

Haben Sie Datenbank für diesen Einsatz? Wenn Sie dies tun, können Sie den Anfangswert oder die vorherige Erhöhung speichern. Von dort können Sie berechnen, wie viel Anstieg für den nächsten Wert benötigt wird – Erwin

Antwort

0

Ich glaube, Sie das Zeichen ändern müssen Wert an - als solcher:

$Strengthvalue = 2 + $row['strength']; 
$stengthvalue = -0.04 + $Strengthvalue // to decrease current value 
0

Ihre Startstärke ist statisch, so dass Sie rechnen können der Anstieg basiert auf der Differenz der aktuellen Stärke und des Startpunkts.

$currentStrength = $row["strength"]; 
$increment = (1 - ($currentStrength - 18) * 0.02) * 2; 
$StrengthValue = $increment + $currentStrength; 
0

Wenn Sie genau sein möchten, ohne Probleme Runden Ich schlage vor, einen rekursiven Ansatz:

<?php 

function calculate_increase($current_strength) { 
    if($current_strength == 18) { 
     return 2; 
    } 

    return 0.98 * calculate_increase($current_strength-1); 
} 
//calculate_increase(20) == 1.9208 
Verwandte Themen