PHP уравнение из JavaScript - PullRequest
       1

PHP уравнение из JavaScript

0 голосов
/ 09 января 2011

У меня есть это уравнение JavaScript, которое я сейчас пытаюсь преобразовать в PHP.

JavaScript:

LVL=new Array(); 
LVL[1]=128; 
LVL[0]=128; 
m=.05; 
for (i=1;i<101;i++) { 
    if (i>1) { 
        LVL[i]=Math.floor(LVL[i-1]+(LVL[i-1]*m));
        m=m+.0015; 
    }
}

, тогда это куча document.writes из table иa for loop.

Вот что у меня пока есть (что НЕ работает):

<?php
$n = 1; // level
$m = .05; // exp modifier
$exp = floor($n*1+($n-1)*$m);
echo "Level " . $n . ", exp needed: " . $exp; // 128 exp
?>

Вывод PHP: Level 1, exp needed: 1 и это НЕПРАВИЛЬНО.

Это СЛЕДУЕТ сказать: Level 1, exp needed: 128

Что я делаю не так?

Ответы [ 2 ]

2 голосов
/ 09 января 2011

Прямая транскрипция:

$LVL = array();
$LVL[1] = 128;
$LVL[0] = 128;
$m = .05;
for ($i = 1; $i < 101; $i++)
{
   if ($i > 1)
   {
       $LVL[$i] = floor($LVL[$i-1] + $LVL[$i-1]*$m);
       $m = $m + .0015
   }
}

Вам нужно построить массив как построенный снизу вверх

1 голос
/ 09 января 2011

Вы делаете пару ошибок:

  • вы используете индекс (уровень), так как это количество очков опыта, необходимое для достичь уровня.
  • вы забыли для (если вы проверяете формулу, все в порядке)

код пока:

$lvl = array(128,128);
$modifier=.05; 
for ($i=1;$i<101;i++) { 
  $lvl[$i]=floor($lvl[$i-1]*(1+$modifier));
    $modifier+=0.0015; 
}
foreach ($lvl as $level=>$points) {
  echo "Level " . $level . ", exp needed: " . $points ."\n<br />"; // 128 exp
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...