2017-10-24 7 views
0

私はJavascriptで練習するためにバーチャルカジノを作ろうとしています。私はすでにルーレットのホイールが動作しているので、今は "通貨"機能を追加したかったのです。基本的に、プレーヤーはカジノに200ドルを入力し、ギャンブルをするとその通貨額が変化します。バーチャルカジノの「通貨」通貨変数が作動しない、即座にリセットする

ここで私は何をしようとしています。この文書のHTML部分には、「あなたは現在200ドル持っています」という文があります。 200は "m"と呼ばれるdivに囲まれています。変数 "money"は、この文章/ divからこの数字をとります。プレイヤーがルーレット・ホイールを回転させると、金額が差し引かれ、または可変金額に加算され、それに応じてdiv "m"の内容が変更されます。

私が望むのは、プレーヤーが車輪を回転させた後、div 'm'の内容が書き換えられ、変数「money」が変更されるということです。しかし、これはうまくいきません。コードのサンプルは次のとおりです。

var money = document.getElementById("m"); 

function spin(){ 
    var landing = Math.floor(Math.random() * 4) + 1; 

    var nsvalue = parseInt(document.regular_roulette.num_select.value); 

    var betvalue = parseInt(document.regular_roulette.bet.value); 

    if (landing === nsvalue) { 
    alert("You win $" + betvalue * 3); 

    money = money + (betvalue * 3); 
    } else { 
    alert("You lose $" + betvalue); 

    money = money - betvalue; 
    } 

    document.getElementById("m").innerText = money; 
} 

//why is it fleeting? I've seen this before. 
     </script> 
</head> 
<body> 

    You currently have $<div id = "m">200</div> 

プレーヤーが7ドル賭けるとします。何が起こるのかdivの 'm'は、プレーヤーがどれだけ勝ったか失ったかを表示し、すぐに200に戻る場合は、数字「-7」または「21」で点滅します。私は "parseInt()"を変数 "money"の代入。単に "NaN"を点滅させるだけです。このコンセプトを破って "var money = 200"を入れても、200に戻る前に "193"が点滅します。

どうすればこの作品を作れますか?ベットの結果に基づいて増減する通貨変数はどのようにして複数のスピンにまたがることができますか?

答えて

1

文書の先頭にmoneyと定義してあり、<div id="m">が利用可能になる前に実行されます。要素のテキストではなく、要素に値を設定しています。その結果、moneyは未定義です。

これは、onloadハンドラに入れるか、bodyタグの直前に置く必要があります。

私はあなたがdocument.regular_rouletteをやっているかわからないので、これは単なる静的な値を使用していますが、それが役立つかもしれない:

var money 
 

 
function spin() { 
 
    var landing = Math.floor(Math.random() * 4) + 1; 
 
    var nsvalue = parseInt(10); 
 
    var betvalue = parseInt(10); 
 
    if (landing === nsvalue) { 
 
    document.getElementById('alert').innerHTML = "You win $" + betvalue * 3 
 
    money = money + (betvalue * 3); 
 
    } else { 
 
    document.getElementById('alert').innerHTML = "You lose $" + betvalue 
 
    money = money - betvalue; 
 
    } 
 
    document.getElementById("m").innerText = money; 
 
} 
 
window.onload = function() { 
 
    money = parseInt(document.getElementById("m").innerText); 
 
}
You currently have $ 
 
<div id="m">200</div> 
 
<div id="alert"></div> 
 
<button onclick="spin()">spin</button>

+0

を私は申し訳ありませんが、私が入れない場所onloadハンドラ? –

+0

@DennisMarkham私は例を追加しました。これが私のものだったら、私はjavascriptでお金をセットし、divからそれを読み込むのではなく、divに追加しますが、これは別の質問です。 –