2012-03-02 7 views
-3

ユーザーが正しい番号を推測したら、ユーザーが再度プレイしたいかどうか尋ねる必要があります。ループが繰り返されるだけですが、私が必要とするのは、再度プレイしたいかどうかを尋ねるプロンプトボックスです。ユーザーがyesと答えると、ループは再び答えが推測されるまでループを開始します。JavaScript beginner:ループを再開する方法

<HTML>  
    <HEAD>  
    </HEAD>  
    <BODY 
     <FORM NAME="testform"> 
      <BR> 
      <BR> 
      <BR> 
     </FORM> 

     <INPUT id="attempts" TYPE="text" NAME="inputbox" VALUE="" /> 
     <INPUT id="zero" TYPE="button" NAME="resetbox" VALUE="Reset " onclick="reset()" /> 

     <SCRIPT type="text/javascript"> 
      varattempts = 0; 
      x = Math.round((Math.random()*19))+1; 
      var tip; 

      tip=prompt("Do you want to play a game?") 

      while(tip.charAt(0).toLowerCase() == "y")  
      {  
       var Guess; 
       document.getElementById('attempts').value = 0; 
       do 
       {  
        Guess = prompt("Pick a number between 1 and 20","") 
        if (Guess === null) break; 
        document.getElementById('attempts').value = parseInt(document.getElementById('attempts').value)+1 
       } while (Guess!=x); 

       if (Guess == x)  
       {    
        alert("You guessed right!")     
       } 
      }    
      function reset()     
      { 
       varattempts=0; 
       document.getElementById('attempts').value = 'Attempts: 0'; 
      } 
     </SCRIPT> 
    </BODY>  
</HTML> 
+3

私はあなたの本の章を読み返します。 – Loktar

+0

この宿題はありますか? – icktoofay

+0

'varattempts = 0;'はタイプミスのようです。 –

答えて

4

ループを別のループの中に入れます。ループ・ループ・ドゥ・ドゥープ。

0

イテレーションを実行するための関数を作成するのが最も簡単です。その繰り返しが終了すると、関数が戻り、再度再生するかどうかを尋ねます。その場合は、関数を再度呼び出します。

play()という名前の関数では、すべての他のコードを入れてください:

function play() { 
    // all your other code here 
} 

// Then call that function in a loop, return true from play() if the user is done 
// and doesn't wish to be asked if they want to play again 
var done; 
do { 
    done = play(); 
} while (!done || window.confirm("Do you want to play again?")); 
0

その時間は、リセットfalseを返すと、プロンプトボックスに応じて機能をリコールするときに、その後、機能にメインビットを入れることができます。もしそうであれば何もしないでください。

varattempts = 0; 

は芋簡単な何かを書くために台無しに道のように見えるのミスのように見えます。

関連する問題