0
Ethan Brownの書籍「Learning JavaScript」の助けを借りて、私が開発したゲームの結果を理解することができません。 I 7は容易に最終的な結果を監視することがあることがtotalBet
可変ハードコードされたJSゲームクラウンとアンカー:結果のエラー
//helper functions for randomizing
function rand(x,y){
return x + Math.floor((y-x+1)*Math.random());
}
function getFace(){ return ['crown','heart','spade','club','diamond','anchor'][rand(0,5)]; }
//the game
function crownsAndAnchors(){
console.log('Let\'s play Crowns and Anchors!');
let rounds = 0;
let funds = 50;
while(funds > 1 && funds < 100){
rounds ++;
console.log(`Round: ${rounds}`);
let totalBet = 7;
let bets = { crown: 0, heart: 0, spade:0, club:0, diamond:0, anchor:0 };
if (totalBet == 7){
totalBet = funds;
console.log('You pulled out 7p, your lucky number! Bet all on heart');
bets.heart = totalBet;
}else{
//distribute totalBet randomly
}
funds = funds - totalBet;
console.log('\tBets: ' + Object.keys(bets).map(face => `${face} ${bets[face]}p`).join(' || ') + ` (total: ${totalBet} pence)`);
const hand = [];
// roll the dice
console.log("_______________rolling the dice ____________")
for (let i = 0; i < 3; i++) {
hand.push(getFace());
}
console.log(`\tHand: ${hand.join(', ')}`);
//check for winnings
let wins = 0;
for (let i = 0; i < hand.length; i++) {
let face = hand[i];
if (bets[face] > 0) wins = wins + bets[face];
}
funds = funds + wins;
console.log(`\tWinnings: ${wins}`);
}
console.log(`\nEnding Funds: ${funds}`);
}
crownsAndAnchors();
:ここ
コードです。たとえば、3つの死亡転帰のうち2つがであるべきである場合、heart
である場合、正しいですか?私は(ノードv7.6.0
)のコードを実行すると
しかし、これは私が返されていますものです:
Let's play Crowns and Anchors!
Round: 1
You pulled out 7p, your lucky number! Bet all on heart
Bets: crown: 0p || heart: 50p || spade: 0p || club: 0p || diamond: 0p || anchor: 0p (total: 50 pence)
_______________rolling the dice ____________
Hand: heart, heart, club
Winnings: 100
Ending funds: 100
私は何とか間違って、私はちょうどその理由を把握することはできませんfunds
を更新しています知っています。
ありがとうございました!
グッドアイ、ラリー!私は先に進み、その行を削除して、// winnings_ forループのブロック文を確認します。 'if(!wins){funds = funds - totalBet; } ' 統計的確率に従って作業しているようですが、今すぐ!ありがとうございました –