1

ゲーム内通貨を持っています。ユーザーが次のアップグレードを購入するために、私は現在、N 回目のアップグレードに N*1000 コインがかかるという非常に単純な方法を使用しています。

現時点では、これを使用することの熱狂的なファンではありません.

解決策の 1 つは、フィボナッチを使用することです。これは、初期には優れた結果をもたらしますが、その後のアップグレードはほぼ不可能になります。

私の数学の知識はかなり限られているので、誰でも解決策を提供できますか

4

2 に答える 2

3

シグモイド関数はどうですか?ゆっくりと上昇し始め、ほぼ直線的に上昇し、最後に減速し始めます。

wolfram alpha のグラフを見ると、次のように価格を計算できます。

price = a_bit_more_than_maximum_upgrade_price * sigmoid( x )

開始アップグレードの価格が最大価格の何倍になるかを選択する必要があります。開始を選択すると、最大価格のx=-45% 未満の価格が得られます。終了 x は 4 に等しい可能性があります。最大価格の約 95% に到達します。次に、アップグレードの数があります。次のようにシグモイドの入力を計算できます。

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 に答える