2016-06-29 64 views
0

我正在Teamtreehouse上跟蹤一個Javascript跟蹤並嘗試製作遊戲。它要求用戶猜測1到6之間的數字。用戶可以猜出數字,輸入較小的數字並獲得另一個機會,輸入一個更大的數字,並有機會或不會再猜測它。運行代碼時,警報顯示錯誤消息

var correctGuess = false; 
    var randomNumber = Math.floor(Math.random() * 6) +1; 
    var guess = prompt("I am thinking of a number between 1 and 6. What is it?"); 

    if (parseInt(guess) === randomNumber) { 

     correctGuess = true;} 

     else if (parseInt(guess) < randomNumber) { 
      var guessMore = prompt("Try again! The value I am thinking of is lower than " + guess); 
      if (parseInt(guessMore) === randomNumber) { 
       correctGuess =true;} 

     } else if (parseInt(guess) > randomNumber) { 
      var guessLess = prompt("Try again! The number I am thinking of is smaller than " + guess); 
      if (parseInt(guessLess) === randomNumber) { 

       correctGuess = true; } 
      } 


     if (correctGuess) { 


      alert("Yey!"); 
     } else { 
      alert("Better luck next time! The number was " + randomNumber); 
     }; 

雖然代碼似乎罰款對我來說,每1的5倍(假設),它會顯示一個異常(雖然用戶猜數,運行else語句我們;或者它問你一個較小的數字只是爲了發現結果實際上是一個更大的數字等)。你必須運行代碼幾次,看看我的意思是https://jsfiddle.net/Cilvako/7yhhfv6g/。我究竟做錯了什麼?

+4

退房您提示您else if語句。他們都說,你正在考慮的價值低於/小於猜測值。 – nviens

+3

這段代碼的工作....你只是有一個錯字:「低」應該是「大」 – kirinthos

+0

我一直在盯着這個代碼3小時,我看不到錯字。我需要休息。非常感謝! –

回答

1

所以您的問題:

,或者問你一個較小的數字,才發現這個結果 實際上是一個比較大的數字等)

這是由於事實上,您在條件聲明中的「低於」和「小於」。我將「低於」改爲「大於」。

else if (parseInt(guess) < randomNumber) { 
      var guessMore = prompt(
      "Try again! The value I am thinking of is greater than " + guess); 
      if (parseInt(guessMore) === randomNumber) { 
       correctGuess =true;} 
    } 
    else if (parseInt(guess) > randomNumber) { 
      var guessLess = prompt(
      "Try again! The number I am thinking of is smaller than " + guess); 
      if (parseInt(guessLess) === randomNumber) { 

       correctGuess = true; } 
      } 

https://jsfiddle.net/7yhhfv6g/4/

+0

哦,這樣一個愚蠢的錯誤。代碼本身沒有錯,我拼錯了一個字。非常感謝,現在它完美地工作。 –

+0

不要覺得不好,我盯着那大概5分鐘的代碼試圖找到它。 :) – kemiller2002