2017-07-01 22 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 –

相关问题