2016-04-30 78 views
1

我目前正在研究一個我覺得有趣的迷你項目。如何讓電腦猜測一個數字並返回猜測數(Javascript)?

基本的想法是讓用戶輸入一個介於1到5之間的數字,然後讓電腦猜出這個數字,顯示猜測數量。 這是到目前爲止我的代碼...

<html> 

<head> 

    <title>Computer Guessing Game</title> 


</head> 


    <body> 

     <p>How many fingers are you holding up?</p> 

     <input type = "text" id= "myNumber"> 

     <button id="guess">Guess!</button> 

     <script type="text/javascript"> 

      document.getElementById("guess").onclick = function() { 

      var myNumber = document.getElementById("myNumber").value; 

      var gotIt = false; 

      while (gotIt == false) { 

       var guess = Math.random(); 

       guess = guess * 6; 

       guess = Math.floor(guess); 

       if (guess == myNumber) { 

        gotIt = true; 

        alert ("Got it! It was a " + guess + ". It took me " + /*number of guesses */ + " guesses."); 

       } else { 

        //computer should keep randomly guessing until it guessed correctly 
       } 
      } 
     } 

     </script> 

    </body> 

正如你所看到的,我無法弄清楚如何使計算機保持猜測數字,然後打印出用戶的數量猜測它花了。我認爲這是某種循環,但是再次,我不確定。

任何幫助表示讚賞(對不起,如果我沒有明確寫出問題,我很新,並且隨着時間的推移會變得更好!)。

+0

要把它繼續猜測,只需刪除'else'一部分。 –

+0

@ PM77-1我猜,但是沒有變量可以放入用戶看到的輸出中。 –

+0

所以添加一個。無論如何,它不會在'else'部分。 –

回答

2

我覺得你非常接近你想要的東西。你可以在while循環之前添加一個變量

var howManyGuesses = 0; 

,並且每次計算一個新的隨機數時增加這個變量。

while(gotIt == false){ 
    howManyGuesses = howManyGuesses + 1; //increment the amount of guesses 
    //your logic 
    alert ("Got it! It was a " + guess + ". It took me " + howManyGuesses + " guesses."); 
} 

爲了防止它永遠循環下去,你可以這樣做

var myNumber = document.getElementById("myNumber").value; 
if (myNumber < 1 || myNumber > 5) { 
    alert('Please insert a number between 1 and 5'); 
    return; 
} 
+0

你也可以建議一些能夠停止while循環的東西,這樣如果用戶輸入6就不會使瀏覽器崩潰。 –

+0

使用其他信息編輯的響應 – Bruno