我的游戏中有游戏币。对于购买下一次升级的用户,我目前使用一种非常简单的方法,即第 N 次升级需要 N*1000 个硬币。
我目前不是使用它的忠实粉丝,因为我希望它更容易开始并且可能更好地扩展,因此升级并不那么难。
一种解决方案是使用斐波那契,它可以提供很好的早期结果,但会使以后的升级几乎不可能。
任何人都可以提供解决方案,因为我的数学知识非常有限
我的游戏中有游戏币。对于购买下一次升级的用户,我目前使用一种非常简单的方法,即第 N 次升级需要 N*1000 个硬币。
我目前不是使用它的忠实粉丝,因为我希望它更容易开始并且可能更好地扩展,因此升级并不那么难。
一种解决方案是使用斐波那契,它可以提供很好的早期结果,但会使以后的升级几乎不可能。
任何人都可以提供解决方案,因为我的数学知识非常有限
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 次升级 :) 您可以剪掉最后几位数字或将它们四舍五入以获得更好看的数字。
这似乎是一个与http://programmers.stackoverflow.com更相关的问题
但无论如何,我会说尝试使用指数函数,比如
f(n) = 1000 * 1.1^n
显然,一旦您进行了 100 次或更多升级,价格就会变得有点荒谬,您或许可以使用条件检查是否n
大于某个数字,然后使用线性函数继续计算下一次升级的价格。