2016-03-30 1 views
0

私はHtml/Jsマネーカウンターを作成しようとしましたが、私がアップデートすれば、それは1ティックを更新して、それ自体を古い値にリセットします。私はupdateという名前の関数を作成しようとしましたが、お金の値が変わるたびに実行させていましたが、それはうまくいきませんでした。関数でinner.HTMLを使用するにはどうすればよいですか?

<html> 
<head> 
<title>Betting Simulator Test!</title> 
</head> 

<body> 
    <br/> 
    <p id="p1">You have 500$</p> 
    <br/> 
    <form name="CoinFlip" action="" onsubmit="Create()" method="post"> 
    Coins: <input type="text" name="Csubmit"> 
    <input type="submit" value="Flip the Coin"> 
    </form> 

    <script type="text/javascript"> 
     Balance = 500; 
     function Game() { 
      if(Balance >= 1) { 
       var Coin = confirm("You have put " + sub + "$ in the CoinFlip!"); 
       if(Coin == true) { 
        var flip = true 
        if(flip == true) { 
         alert("You won " + sub + "$"); 
         Balance = Balance + sub*2 - sub; 
         Update = document.getElementById("p1").textContent="You have " + Balance + "$"; 

        } else { 
         alert("You lost " + sub + "$"); 
         Balance = Balance - sub; 
         Update = document.getElementById("p1").textContent="You have " + Balance + "$"; 
        } 
       } else { 
       }     
      } else { 
       alert("You ran out of Money"); 
      } 
     }  

    function Create() { 
     sub = document.forms["CoinFlip"]["Csubmit"].value; 
     if(sub <= Balance && sub > 0) { 
      Game(); 
     } else { 
      alert("value does not make any sense!"); 
     } 
    } 
    </script> 
</body> 

+0

'VARフリップ= true'には('; ')セミコロンを欠い。また、なぜあなたは空のelse節を持っていますか? – Gendarme

+0

これはリセットされたテキストではなく、フォームを送信したばかりなので、ページ全体が更新されます。 – blex

+0

ありがとうございました – Igutin

答えて

1

あなたは複数の問題があります。最初は、プレイするたびにフォームを送信するので、ページが更新され、すべてが失われます。これを回避する回避策を見つけることができますが(see this)、この場合、フォームは実際には必要ありません。

また、常にfliptrueに設定しているため、ユーザーは常に勝ちます。あなたはこのスニペットを使用してランダムな勝利をシミュレートすることができます:ここでは

var win = Math.round(Math.random()); // 1 or 0 (truthy or falsy) 

は実施例である:

var balance = 500; 
 

 
document.getElementById('flip').addEventListener('click', play); 
 

 
function play(){ 
 
    // parseInt() converts a String to an integer (10 is for decimal base) 
 
    var bet = parseInt(document.getElementById('bet').value, 10); 
 

 
    if(bet <= balance && bet > 0) 
 
    { 
 
     var accepted = confirm("Do you really want to bet " + bet + "$?"); 
 
     if(accepted) 
 
     { 
 
      var win = Math.round(Math.random()); // Random win 
 
      if(win) 
 
      { 
 
       alert("You won " + bet + "$!"); 
 
       balance += bet; 
 
      } 
 
      else 
 
      { 
 
       alert("You lost " + bet + "$..."); 
 
       balance -= bet; 
 
      } 
 
      if(!balance){ alert('You ran out of money...'); } 
 
      document.getElementById('p1').textContent = "You have " + balance + "$"; 
 
     } 
 
     document.getElementById('bet').value = 0; 
 
    } 
 
    else 
 
    { 
 
     alert("Your bet makes no sense!"); 
 
    } 
 
}
<p id="p1">You have 500$</p> 
 
<p>Coins: <input type="number" value="0" id="bet"> <button id="flip">Flip the coin</button>

+0

本当に助けてくれてありがとう、私はプログラミングに新しいです、私はそれらのコードについて知りませんでした! – Igutin

関連する問題