В моем приложении я получаю переменную $curxp
, которая содержит int, теперь я хочу создать функцию, которая автоматически возвращает $xplvlup
(которая содержит int, сколько всего XP требуется для следующего уровня, и функцию, которая возвращает текущий уровень.
Теперь я могу просто жестко закодировать операторы переключателей и вычисленные числа, например:
switch($curxp){
case <10: $xplvlup = 10; break;
}
Но было бы намного лучше, если бы я мог использовать алгоритм, чтобы не было максимального уровня.
Я знаю, что должен работать с показателями, чтобы получить хорошую кривую, но я просто не знаю, как все начать.
UPDATE
Благодаря Олтарусу я пришел к следующему решению:
$curxp = 20;
function level($lvl){
return $xp = pow($lvl,2) + 5 * $lvl;
}
$lvl = 0;
while (level($lvl) < $curxp) $lvl++;
$totxp = level($lvl);
$xplvlup = level($lvl) - $curxp;
echo 'Level: '.$lvl."<br />";
echo 'Total XP: '.$totxp."<br />";
echo 'XP needed for Levelup: '.$xplvlup;