PHP按级别获取经验 [英] PHP Get Experience by Level

查看:27
本文介绍了PHP按级别获取经验的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有这段代码,可以循环1到99,并且是一个公式.

I have this piece of code that loops 1 through 99 and is a formula.

function getExperienceByLevel ($maxLevel)
{
    $levels = array ();
    $current = 0;

    for ($i = 1; $i <= $maxLevel; $i++)
    {
        $levels[$i - 1] = floor ($current / 4);
        $current +=  floor($i+300*pow(2, ($i/9.75)));
    }

    return $levels;
}

首先,您像这样启动它 $ aLevels = getExperienceByLevel(99); 然后查看要达到 6 等级需要多少经验值,请执行此操作echo $ aLevels [5]; ,因为它是一个数组.

First you initiate it like so $aLevels = getExperienceByLevel(99); then to see how much EXP you need to get to level 6 you do this echo $aLevels[5]; since it's an array.

现在,我正在尝试反向操作.通过EXP获取等级.

Now I'm trying to do reverse. Get Level by EXP.

function getLevelByExp($exp) 
{
    $myLevel = 0;
    $aLevels = getExperienceByLevel(99);

    for ($i = 1; $i < 100; $i++)
    {
        if ($exp > $aLevels[$i-1]) 
        { 
            return $myLevel;
        }
    }
}

在调用 getLevelByExp(1124); 或其中的任何数字时,它似乎返回零.但是,当您在该语句中放入回声时,它似乎起作用.

When called upon getLevelByExp(1124); or any number inside, it seems to return a zero. But it seems to work when you put echos inside that statement.

就像而不是 return $ myLevel 一样,执行 echo您已达到$ i< br/>的级别"; ,它将一直执行到您已获得EXP的当前水平.

Like instead of return $myLevel do echo "You are up to level $i<br />"; and it will go all the way up to the current level you've gained EXP for.

但是,当我只想返回一个数字时,仍然无法使用.

But still.. doesn't work when I want to simply return a number.

推荐答案

这似乎比您的功能更好:

This seems to work better than your function:

function getLevelByExp($exp)
{
        $aLevels = getExperienceByLevel(99);
        for ($i = 0;  $i <= 99;  ++$i)
        {
                //echo "cmp $exp >= aLevels[$i]={$aLevels[$i]}\n";
                if ($exp <= $aLevels[$i])
                        return $i - 1;
        }
        return -1;
}

在某些情况下(例如 $ exp 为零时)需要改进.

It needs improvement for the edge cases, such as when $exp is zero.

这篇关于PHP按级别获取经验的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆