2016-10-06 9 views
1

私は非常にプログラミングに新しいので、いくつかの助けを得ることはいいです。イベントをトリガーするときに変数が更新されないのはなぜですか?

ボタンを押したときに変数が更新されないのはなぜですか?

HTML:

<h1>NIM</h1> 
    <p>Welcome to a simple edition of the game NIM</p> 
    <table> 
     <tr> 
      <th>You</th> 
      <th>Left</th> 
      <th>PC</th> 
     </tr> 
     <tr> 
      <td><p id="pl" class="nr">0</p></td> 
      <td><p id="a" class="nr">25</p></td> 
      <td><p id="pc" class="nr">0</p></td> 
     </tr> 
    </table> 

     <br> 
    <p>How many do you want to pull?</p> 
    <input type="number" id="val" value="1" min="1" max="3"> 
    <button id="turn">Trekk</button> 

はJavaScript:

私はおそらくC++に精通してい
$('#turn').click(function() { 
var val = parseInt($('#val').val()), 
    player = parseInt($('#pl').html()), 
    pc  = parseInt($('#pc').html()), 
    total = parseInt($('#a').html()); 
console.log(val); 
console.log(total); 

do { 
    switch (val) { 
    case 1: 
     total -= 4; 
     player += 1; 
     pc += 3; 
     break; 
    case 'b2': 
     total -= 4; 
     player += 2; 
     pc += 2; 
     break; 
    case 'b3': 
     total -= 4; 
     player += 3; 
     pc += 1; 
     break; 
    } 

} while (total > 1);}); 

が、これは私がジャバスクリプト/ jqueryの内doループを試してみてください最初の時間です。

+0

このコードは実行されていますか? –

+1

私はここで[fiddle](https://jsfiddle.net/Rudauke/ssw9w230/)を作成しました。変数が更新されています。テキストは更新されませんが、それはどこでも更新しないからです。 –

+0

あなたのコードは動作しています。変数が変化します。 'do'ループの後に' console.log() 'を使用してください –

答えて

1

これはあなたが作ろうとしているゲームだと思います。楽しめ!

<html> 

<head> 

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> 

<script> 
$(document).ready(function(){ 

    var val = 0; //Initial value of the input box 
    var player = parseInt($('#pl').html()); //Player score 
    var pc  = parseInt($('#pc').html()); //pc score 
    var total = parseInt($('#a').html()); //Total left 

    $('#turn').click(function() { 

     val = parseInt($('#val').val()); 

     console.log(val); 
     console.log(total); 

     if(total > 0){ 

      switch (val) { 
      case 1: 
       total -= 4; 
       player += 1; 
       pc += 3; 
       break; 
      case 2: 
       total -= 4; 
       player += 2; 
       pc += 2; 
       break; 
      case 3: 
       total -= 4; 
       player += 3; 
       pc += 1; 
       break; 
      } 

      $('#pl').html(player); 
      $('#pc').html(pc); 
      $('#a').html(total); 
     } 
    }); 

}); 

</script> 

</head> 

<body> 

    <h1>NIM</h1> 
    <p>Welcome to a simple edition of the game NIM</p> 
    <table> 
     <tr> 
      <th>You</th> 
      <th>Left</th> 
      <th>PC</th> 
     </tr> 
     <tr> 
      <td><p id="pl">0</p></td> 
      <td><p id="a">25</p></td> 
      <td><p id="pc">0</p></td> 
     </tr> 
    </table> 

     <br> 
    <p>How many do you want to pull?</p> 
    <input type="number" id="val" value="1" min="1" max="3"> 
    <button id="turn">Trekk</button> 

</body> 

</html> 

フィドル

https://jsfiddle.net/1o6qxw9c/

あなたの過ちあなたが直接このような '$' を使用することはできません

  1. 。 jQueryを含む。
  2. の値を '0'で開始します。
  3. valだけを更新し、初めて値を取得したときに残りのものを計算する必要があります。ボタンをクリックしてすべてのコードを書き込むと、他のすべての値もリセットされます。
  4. 正しく動作するには、document.ready()内のすべてのコードをラップします。
  5. あなたが逃したと計算されたTotal、pc、およびプレイヤースコアの値を更新する必要があります。

JavaScriptは「C」とは異なります。 JSはクライアント側とサーバー側の両方で使用されているため、Webの言語を作成することをお奨めします。まず、簡単な基​​本操作を学び、1年後に移動してOOJSを理解してください。しかし、それは栄光の機能を提供しますが、よく理解されていない場合は、ほとんどの時間あなたはポップアップの結果を混乱させ続けるでしょう!

+0

驚くばかりの答えと素晴らしいあなたはすべての間違いを指摘した。 –

+0

Pls Vote Up then;) – Deadpool

+0

私はすでに日々の制限に達しています –

関連する問題