Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.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_Loops_Numbers - Fatal编程技术网

在Javascript中创建数字猜测游戏-需要循环帮助吗

在Javascript中创建数字猜测游戏-需要循环帮助吗,javascript,loops,numbers,Javascript,Loops,Numbers,到目前为止,我已经创建了一个基本的数字猜测游戏,为了测试的目的,这个数字目前设置为50。我想知道如何添加一个循环,以便用户可以再次猜测。我还想在屏幕上看到前面的猜测。所以应该是这样的: 猜数字游戏 我猜#1:49很低 我猜2:51很高 我猜3:50是对的 对于循环,我知道我需要使用类似于“while(!guessed)”的东西,但根本不知道如何实现它,我对这个非常陌生,任何帮助都会非常棒 var canvas; canvas = openGraphics(); var max; max = 1

到目前为止,我已经创建了一个基本的数字猜测游戏,为了测试的目的,这个数字目前设置为50。我想知道如何添加一个循环,以便用户可以再次猜测。我还想在屏幕上看到前面的猜测。所以应该是这样的:

猜数字游戏

我猜#1:49很低

我猜2:51很高

我猜3:50是对的

对于循环,我知道我需要使用类似于“while(!guessed)”的东西,但根本不知道如何实现它,我对这个非常陌生,任何帮助都会非常棒

var canvas;
canvas = openGraphics();

var max;
max = 100;

var numberToGuess;
numberToGuess = 50; // will become Math.floor( Math.random() * max ) + 1; later //
canvas.setFont("comic sans ms", "15px", Font.Bold);
canvas.drawString("Number Guessing Game!");

var guess;
guess = prompt( "Please input your first guess" );


if(guess > numberToGuess){
  var message1;
  message1 = " was HIGH";
  var messageanswer;
  messageanswer = "Guess #1 : " + guess + message1;
  canvas.drawString(messageanswer, 20,20);
}

if (guess < numberToGuess){
  var message2;
  message2 = " was LOW";
  var messageanswer2;
  messageanswer2 = "Guess #1 : " + guess + message2;
  canvas.drawString(messageanswer2, 20,20);
}

if (guess == numberToGuess){
  var message3;
  message3 = " was CORRECT";
  var messageanswer3;
  messageanswer3 = "Guess #1 : " + guess + message3;
  canvas.drawString(messageanswer3, 20,20);
}

canvas.paint();
var画布;
canvas=openGraphics();
var-max;
最大值=100;
var数猜测;
numberToGuess=50;//将成为Math.floor(Math.random()*max)+1;后来//
canvas.setFont(“comic sans ms”,“15px”,Font.Bold”);
帆布。抽绳(“猜数字游戏!”);
var猜测;
猜测=提示(“请输入您的第一个猜测”);
如果(猜测>数字猜测){
var-message1;
message1=“高”;
var消息应答;
messageanswer=“Guess#1:”+Guess+message1;
画布.抽绳(messageanswer,20,20);
}
如果(猜测<数字猜测){
var-message2;
message2=“低”;
var消息应答器2;
messageanswer2=“猜测#1:”+Guess+message2;
帆布.抽绳(messageanswer2,20,20);
}
如果(猜测==数字猜测){
var-message3;
message3=“正确”;
var消息应答器3;
messageanswer3=“猜测#1:”+Guess+message3;
帆布.抽绳(messageanswer3,20,20);
}
canvas.paint();

您是正确的,您需要使用一种类型的
while
循环来持续允许输入,直到猜到数字为止

请记住,您需要使用
dowhile
循环,因为您希望在代码运行之后而不是之前检查条件

类似这样的方法会奏效:

var guess;
var numberToGuess = 50;

do {
    // check previous guess and alert low/high message
    if ( guess ) {
        if ( guess > numberToGuess ) {
            alert( "Your guess was too high." );
        }
        else {
            alert( "Your guess was too low." );
        }
    }

    guess = prompt( "Please input your guess" );
} while ( guess != numberToGuess );

alert( "You guessed correctly!" );

显然,如果您愿意,您可以添加自己的计数器和消息,但这将使您走上正确的轨道。

如果您是正确的,您需要使用一种
while
循环来连续允许输入,直到猜到数字为止

请记住,您需要使用
dowhile
循环,因为您希望在代码运行之后而不是之前检查条件

类似这样的方法会奏效:

var guess;
var numberToGuess = 50;

do {
    // check previous guess and alert low/high message
    if ( guess ) {
        if ( guess > numberToGuess ) {
            alert( "Your guess was too high." );
        }
        else {
            alert( "Your guess was too low." );
        }
    }

    guess = prompt( "Please input your guess" );
} while ( guess != numberToGuess );

alert( "You guessed correctly!" );

显然,如果愿意,您可以添加自己的计数器和消息,但这应该会让您走上正确的道路。

JavaScript中的循环存在一个问题:UI在运行时处于死机状态。因此,您需要开始考虑“事件”和“事件处理程序”

其思想是更新UI或DOM以显示游戏的当前状态。UI的一部分是一个文本输入字段,用户可以在其中输入下一个猜测。接下来应该是一个按钮“我说得对吗?”。这两个元素替换提示符

现在可以向按钮添加事件/单击处理程序。在处理程序中,读取输入并检查它。如果错误,则更新UI

如果正确,则隐藏文本字段和按钮。相反,你会显示某种“你赢了!”屏幕,再加上一个按钮来重新启动游戏


同样,代码应该以此结束。win按钮的单击处理程序应将UI重置为原始状态。

JavaScript中的循环存在问题:UI在运行时处于死机状态。因此,您需要开始考虑“事件”和“事件处理程序”

其思想是更新UI或DOM以显示游戏的当前状态。UI的一部分是一个文本输入字段,用户可以在其中输入下一个猜测。接下来应该是一个按钮“我说得对吗?”。这两个元素替换提示符

现在可以向按钮添加事件/单击处理程序。在处理程序中,读取输入并检查它。如果错误,则更新UI

如果正确,则隐藏文本字段和按钮。相反,你会显示某种“你赢了!”屏幕,再加上一个按钮来重新启动游戏


同样,代码应该以此结束。win按钮的单击处理程序应该将UI重置为原始状态。

我认为在这种情况下,最好的方法是像这样包装代码

function guess()
{
    if(guess > numberToGuess)
    {  }

    if (guess < numberToGuess)
    {   }

    if (guess == numberToGuess)
    {
        ...
        return;
    }
    else guess();
}
函数猜测()
{
如果(猜测>数字猜测)
{  }
如果(猜测<数字猜测)
{   }
如果(猜测==数字猜测)
{
...
返回;
}
else猜测();
}

我认为在这种情况下,最好的方法是这样包装代码

function guess()
{
    if(guess > numberToGuess)
    {  }

    if (guess < numberToGuess)
    {   }

    if (guess == numberToGuess)
    {
        ...
        return;
    }
    else guess();
}
函数猜测()
{
如果(猜测>数字猜测)
{  }
如果(猜测<数字猜测)
{   }
如果(猜测==数字猜测)
{
...
返回;
}
else猜测();
}

在此处添加一个参数作为第n个猜测可能会很好,他将需要它在画布中显示结果。在此处添加一个参数作为第n个猜测可能会很好,他将需要它在画布中显示结果。这很好而且有效,但我不确定如何让它向用户显示他们的猜测是“过高”还是“过低”因此他们下次可以有更好的猜测,我如何让它显示他们之前的猜测,然后再尝试一次(如果可能的话)@JohnSmith您只需检查
guess
变量是否高于或低于
numberToGuess
变量。我用一个例子更新了我的答案。如果您仍然有问题,请尝试创建一个JSFIDLE,这样我们就可以看到问题的实际情况。这很好而且有效,但我不确定如何让它向用户显示他们的猜测是“过高”还是“过低”,以便他们下次可以有更好的猜测,如何让它显示他们以前的猜测,然后再进行另一次尝试(如果可能的话)@JohnSmith您只需检查
guess
变量是否高于或低于
numberToGuess
变量。我已经用一个示例更新了我的答案。如果您仍然有问题,请尝试创建一个JSFIDLE,以便我们可以看到问题的实际情况。