2017-07-01 54 views
0
<body> 
    <form>  
    <input id="inicio" type="button" value="INICIO"/> 
    </form> 

    <script> 
    document.getElementById("inicio").addEventListener("click", comenzar, false); 

    function comenzar(){ 
     var aleatorio = Math.round(Math.random()*100); 

     // document.write(aleatorio); 

     var numDado, intentos; 
     numDado=0; 
     intentos=0; 

     do{ 
     numDado= prompt("Dime un numero"); 

     if (aleatorio>numDado){ 
      //alert("Mas alto"); 
      document.write("mas alto"); 
     } 

     if(aleatorio<numDado){ 
      //alert("mas bajo"); 
      document.write("mas bajo"); 
     } 
     } while(aleatorio!=numDado); 

     alert("lo has logrado"); 
    } 
    </script> 
</body> 
+0

嘗試格式化代碼... –

+0

目前也沒有一個問題有 –

+2

不要只轉儲代碼,提供一個什麼樣的代碼是應該做的解釋,什麼是不在其中工作。同樣格式化代碼以便於閱讀,編輯器在編輯時提供預覽 –

回答

1

我認爲這是一個無限循環。

嘗試用這種

numDado = numDado * 1

這將投numDado數點

還有另一個問題。

如果用戶按下 'OK',但沒有類型,或者如果他按下 '取消' 遊戲不會停止

您添加前人的精力此

numDado = prompt("Dime un numero"); 
if (numDado != null) { 
    numDado = numDado * 1 

或者這

numDado = prompt("Dime un numero"); 
if(numDado == null) return; 
numDado = numDado * 1 
+0

謝謝@AndrewMorton –

0
numDado= prompt("Dime un numero"); // wrong way 
numDado= Number(prompt("Dime un numero")); // right way 

因爲,提示總是以字符串形式獲取輸入值。如果您的輸入值爲數值字符串,則不能直接使用此值。所以你將數字字符串轉換爲數字然後使用它。

0

我可以看到兩個可能的問題。我沒有時間來測試它,但請嘗試以下操作:

1º我認爲你可能有一個inffinite循環,所以試圖改變你的while循環是這樣的:

while(numDado = prompt("Dime un número", "")) { 
    ... 
} 

2º你必須投結果爲一個數字(int),因爲prompt()返回一個字符串。這可以幫助:

var numInt = parseInt(numDado) 
+0

數字可能不是一個_int_雖然 –

+0

你是對的,但這裏的Mayte試圖比較一個int當她四捨五入隨機數'var aleatorio = Math.round(Math.random()* 100);'所以我猜她是要求一個整數。但是,你是對的;) –

+0

是的,你也是對的,但虛擬用戶存在! :D –

相關問題