1

我的游戏中有游戏币。对于购买下一次升级的用户,我目前使用一种非常简单的方法,即第 N 次升级需要 N*1000 个硬币。

我目前不是使用它的忠实粉丝,因为我希望它更容易开始并且可能更好地扩展,因此升级并不那么难。

一种解决方案是使用斐波那契,它可以提供很好的早期结果,但会使以后的升级几乎不可能。

任何人都可以提供解决方案,因为我的数学知识非常有限

4

2 回答 2

3

sigmoid 函数呢?它开始缓慢上升,然后几乎呈线性上升,最后开始减速。

如果您查看 wolfram alpha 的图表,您可以这样计算您的价格:

price = a_bit_more_than_maximum_upgrade_price * sigmoid( x )

您必须选择最高价格的倍数作为起始升级的价格,如果您选择起始x=-4,您将获得低于最高价格 5% 的价格。结尾 x 可能等于 4。您将达到最高价格的 95% 左右。然后你有一些升级。您可以像这样计算 sigmoid 的输入:

x = (upgrade_index / (number_of_upgrades-1)) * 8.0 - 4.0

升级指数从零开始,您必须至少进行 2 次升级 :) 您可以剪掉最后几位数字或将它们四舍五入以获得更好看的数字。

于 2013-11-02T12:03:58.637 回答
2

这似乎是一个与http://programmers.stackoverflow.com更相关的问题

但无论如何,我会说尝试使用指数函数,比如

f(n) = 1000 * 1.1^n

显然,一旦您进行了 100 次或更多升级,价格就会变得有点荒谬,您或许可以使用条件检查是否n大于某个数字,然后使用线性函数继续计算下一次升级的价格。

于 2013-11-02T12:19:43.893 回答