因此,我正在尝试为我正在处理的项目中的每个级别的 XP 要求制定算法,并且我有一个基本的算法设置,但是我无法弄清楚如何增加每个要求之间的差距。
我的目标是让它在每个级别之间开始大约 750,并且在大约 15 个级别之后它开始增加到每个级别大约 1000,就像这样增加。我在考虑对数函数,但我不知道如何让一个函数按照我的意愿工作。
这是我现在的算法以及它返回的要求。它现在不是日志功能,因为这尽可能接近我想要的,但我觉得这可能是我应该前进的方向。
function lvlAlg(level) {
let Alg = (level) + (600 * level) + 100;
return Alg;
}
// Level 1: 701
// Level 2: 1302
// Level 3: 1903
// Level 4: 2504
// Level 5: 3105
// Level 6: 3706
// Level 7: 4307
// Level 8: 4908
// Level 9: 5509
// Level 10: 6110
如果您希望在从第 1 级到第 15 级时差距从 750 平滑增加到 1000,请计算(1000/750) ** (1/14)
以获得每个级别的指数。这个值大约是1.0208
。
function lvlAlg(level) {
let Alg = (level) + level*750*(1.0208**level) + 100;
return Alg;
}
for (let i = 1; i < 20; i++) {
console.log(i, Math.round(lvlAlg(i)));
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句