2017-07-01 10 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 
を追加sould
+0

ありがとう@AndrewMorton –

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

プロンプトは常に入力値を文字列として取得するためです。入力値が数値の文字列の場合、これを直接使用することはできません。だから数字の文字列をNumberに変換して使用します。

0

そこには2つの問題が考えられます。私はそれをテストするが、次のことをしようとする時間を得なかっました:

1º私はあなたがinffiniteループを持っているかもしれないと思うので、このようなあなたのwhileループを変更しよう:

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

2ºあなたはキャストする必要がありprompt()は文字列を返すため、結果は数値(int)になります。これが役立つことがあります。

var numInt = parseInt(numDado) 
+0

数字が_int_ではないかもしれませんが –

+0

あなたは正しいですが、ここのMayteはintを比較しようとしています彼女は乱数を丸めているので 'var aleatorio = Math.round(Math.random()* 100);'だから私は彼女がintを求めていると思う。しかし、もう一度、あなたは正しいです;) –

+0

はい、あなたも正しいですが、ダミーユーザーは存在します!! :D –