来自JavaScript的PHP方程式

时间:2011-01-09 01:08:47

标签: php javascript math

我有这个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.writestable的{​​{1}}一堆。

这是我到目前为止所做的(不起作用):

for loop

PHP输出为:<?php $n = 1; // level $m = .05; // exp modifier $exp = floor($n*1+($n-1)*$m); echo "Level " . $n . ", exp needed: " . $exp; // 128 exp ?> ,而且错误。

应该说:Level 1, exp needed: 1

我做错了什么?

2 个答案:

答案 0 :(得分:2)

直接转录:

$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 :(得分:1)

你犯了几个错误:

  • 您使用索引(级别),因为它是所需经验值的数量 达到这个水平。
  • 你忘记了(如果你正在测试公式,那就没关系)

到目前为止的代码:

$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
}