2015-08-30 69 views
-2

该程序是一个高低猜测游戏,其中随机数是从用户输入的特定范围内生成的,用户必须猜测该随机数。使用特定范围内的随机数猜测游戏

我在想,如果targetNumber或currentGuess有问题。该程序似乎工作得很好,但是当我输入currentGuess数字时,对话框要么再次弹出或者告诉我太大,再次尝试,即使数字小于数字范围。

另外,我想让用户在输入targetMax和targetMin时不能输入十进制数或其他字符。

var keepPlaying = true; 
var currentGuess = 0; 
var targetMax = null; 
var targetMin = null; 
var targetNumber = parseInt(targetMin + Math.random()*((targetMax - targetMin)+1)); 
var turnCounter = 1; 

targetMax = prompt("Choose a whole number to set your maximum parameter."); 
targetMin = prompt("Choose a whole number to set your minimum parameter."); 
while (keepPlaying) { 
    //get a valid guess 
    do { 
     currentGuess = prompt("Please guess a whole number between " +targetMin+ " and " +targetMax+ ".", ""); 
    } 
    while (!((currentGuess > targetMin) && (currentGuess <= targetMax))) 
    //handle the guess 
    if (currentGuess == targetNumber) { 
     alert("YOU'RE RIGHT!!!\n\nIt took you " + turnCounter + " tries to guess the number."); 
     keepPlaying = confirm("Do you want to play again?") 
     if (!keepPlaying) { 
      break; //not needed, just wanted to show how to exit a loop early 
     } 
     //reset game 
     targetNumber = parseInt(targetMin + Math.random()*((targetMax-targetMin)+1)); 
     turnCounter = 0; 
    } else if (currentGuess > targetNumber) { 
     alert("Too big, try again."); 
    } else if (currentGuess < targetNumber) { 
     alert("Too small, try again."); 
    } else { //should be inaccessible 
     alert("There was an error parsing your guess."); 
    } 
    //update counter 
    turnCounter++; 
} 
document.write("<h1>Thank you for using my <font color='red'>AWESOME</font>, web-based guessing game.</h1>"); 
+1

您在提示用户输入最大和最小参数之前设置您的'targetNumber'。另外,Java和Javascript不是一回事,这个问题与Java没有任何关系。 –

+0

@AaronD听起来像是解决方案,你应该提交一个答案。 – Jeriko

回答

0

Math.random()返回0和1之间当你确定,你定义乘这另外两个数字之间获得随机值的随机浮点数。但是,在您的代码中,您在之前执行此操作,您已提示用户输入这些值。因此,您正在乘以null,结果为0.

如果您在提示用户输入值之后将该行移动到了,则应该得到预期的结果。

+0

谢谢你omg你是一个救生员 – jeny5123

+0

其实不用担心它起初工作,但事后没有工作 – jeny5123

+0

请编辑你的问题,并提供更多的信息什么没有工作(你会得到什么结果?)。 –