Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/435.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 猜谜游戏的悲哀_Javascript_Random_Numbers - Fatal编程技术网

Javascript 猜谜游戏的悲哀

Javascript 猜谜游戏的悲哀,javascript,random,numbers,Javascript,Random,Numbers,您好,我对javascript非常陌生,一直在尝试制作一个随机数字猜测游戏。我想我差不多拿到了,但有一件事我想不出来。每次我运行它,我必须输入我的数字两次,而且无论我输入什么数字,它也只返回较低的值 var randomNumber = Math.floor((Math.random() * 100) + 1); print("I have thought of a random number in the range of 1 to 100. Guess!"); { while (

您好,我对javascript非常陌生,一直在尝试制作一个随机数字猜测游戏。我想我差不多拿到了,但有一件事我想不出来。每次我运行它,我必须输入我的数字两次,而且无论我输入什么数字,它也只返回较低的值

var randomNumber = Math.floor((Math.random() * 100) + 1);

print("I have thought of a random number in the range of 1 to 100. Guess!");
{ 
    while (randomNumber != readline())
        if (readline() < randomNumber) 
        {
            print("Lower");
        } 
        else if (readline() > randomNumber) 
        {
            print("Higher");
        } 
        else if (readline() == randomNumber) 
        {
            print("Good Job");
        }
}
var randomNumber=Math.floor((Math.random()*100)+1);
打印(“我想到了一个介于1到100之间的随机数。猜猜看!”);
{ 
while(randomNumber!=readline())
if(readline()randomNumber)
{
印刷(“更高”);
} 
else if(readline()=随机数)
{
打印(“干得好”);
}
}

您的问题是,在while循环的每次迭代中,您都要多次调用
readline
。在这里,我将
readline
的值存储到一个变量中,并使用该变量来测试:

var randomNumber = Math.floor((Math.random() * 100) + 1);

print("I have thought of a random number in the range of 1 to 100. Guess!");

var hasGuessedCorrectly = false;

while (!hasGuessedCorrectly) 
{
    var guess = readline();
    if (guess < randomNumber) 
    {
        print("Lower");
    } 
    else if (guess > randomNumber) 
    {
        print("Higher");
    } 
    else if (guess == randomNumber) 
    {
        print("Good Job");
        hasGuessedCorrectly = true;
    }
}
var randomNumber=Math.floor((Math.random()*100)+1);
打印(“我想到了一个介于1到100之间的随机数。猜猜看!”);
var HasGuessedRightly=false;
而(!hasGuessed正确)
{
var guess=readline();
如果(猜测<随机数)
{
印刷品(下称);
} 
else if(猜测>随机数)
{
印刷(“更高”);
} 
else if(猜测==随机数)
{
打印(“干得好”);
hasGuessed正确=正确;
}
}

您需要对代码进行格式化,以便更容易看到正在发生的事情。出于某种原因,您在while语句周围加了括号。这仍然有效,但没有任何作用。对于你做的每一次比较,你都在读一行新词?我猜对于每一个输入,你想做3次比较,不是吗?洛根-请停止编辑你的问题和破坏格式!您也可以尝试发布您正在使用的JavaScript解释器<代码>读线不是典型浏览器实现的一部分。我想这是node.js或spidermonkey。啊,好的,我知道了,谢谢。现在干净多了。正如我所说,我对java脚本XD真的很陌生。哈哈,我也意识到我的大于和小于被切换了。我也是这个网站的新手,我不知道编辑我的问题是什么。你们是为我编辑的吗?还有,“很多”不是一个词;-)@是的,你的代码格式不好,所以我重新格式化了。现在就学会格式化你的代码,因为它会让你的代码更加清晰。