2017-12-19 8 views
0
const buydankMiner1 =() => { 

    if (borkCoins >= dankMiner.cost) { 
dankMiner.qt += 1; 
borkCoins -= dankMiner.cost; 
    dankMiner.cost = Math.floor(Math.pow(dankMiner.cost, 1.05)/1.18); 
displayScreen() 
} else { 
    alert("Insufficient funds!"); 
} 
}; 

    const buydankMiner5 =() => { 

    if (borkCoins >= dankMiner.cost * 5) { 
dankMiner.qt += 5; 
borkCoins -= dankMiner.cost * 5; 
dankMiner.cost = Math.floor(Math.pow(dankMiner.cost * 5, 1.05)/1.18); 
displayScreen(); 
} else { 
    alert("Insufficient funds!"); 
} 
}; 

上記のコードは、私が作ろうとしているクリッカーゲームからのものです。 2つのボタンがあり、1つの「dankMiner」またはその5つを購入します。私がしようとしたのは、 "ダンクマイナー"を購入するたびにそのコストを増やすことでした。そのため、最初に1.05の累乗に上げて1.18に分割する式がありました。それは私が "dankMiner"を買うときに動作しますが、5つ購入するオプションは購入1オプションを5回クリックしたときと同じではありません。クリッカーゲームで式が機能しない

たとえば、購入1オプションを15回クリックすると、次の購入コストが77になります。ただし、購入5オプションを3回クリックすると、次の購入オプションが11,000を超えます。

+1

あなたの数式が間違っているので、それはコストの5倍ではありません..... – epascarello

+1

購入5では、計算の前にコストを5倍に増やしています。これはまだ問題がありますが、それぞれのコストnは前のn-1に基づいていますが、5を購入するとn-5のコストは5倍に基づいて計算されます。各(n-1 n-2 n-3 n-4&n-5)のnのbuy 5価格を計算するには、ある種のループまたは再帰が必要です。 – Confuzing

答えて

0

これら二つは異なる

Math.pow(something * 5, 1.05)/1.18 
Math.pow(something, 1.05) * 5/1.18 

とも先例1の結果に毎回5時間Math.pow(something, 1.05)/1,18をやっています。後者は私が思うあなたの目的のために実装する必要があるものです。

関連する問題