2 回答
TA贡献1876条经验 获得超5个赞
您可以拥有 X 倍经验等级。你只需取除法的整数部分。
例如,如果 X=100:LVL1 = 100,LVL2 = 200;等等 ...
在这种情况下,您只需:
LVL = Experience / X;
Ex: 100 / 100 = 1 LVL, 200 / 100 = 2 ... etc
X 可以是任何数字。
希望能帮助到你。
TA贡献1820条经验 获得超10个赞
您可以使用二进制搜索来加快速度:
private static final int[] experiences={83, 174, ...};
int level(int experience) {
// boundary check
if (experience < experiences[0])
return 0;
if (experience >= experiences[experiences.length-1])
return experiences.length;
int minLevel = 0;
int maxLevel = experiences.length;
while (maxLevel - minLevel > 1) {
int chk = (maxLevel+minLevel)/2;
if (experience < experiences[chk])
maxLevel = chk;
if (experience >= experiences[chk])
minLevel = chk;
}
return maxLevel;
}
添加回答
举报