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

时间:2015-04-27 08:43:48

标签: javascript loops numbers

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

数字猜测游戏!

猜猜#1:49很低

猜猜#2:51很高

猜猜#3:50是正确的

对于循环,我知道我需要使用"而(#猜测)"但不知道如何实现它,我对此很新,任何帮助都会很棒!

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();

3 个答案:

答案 0 :(得分:3)

你是对的,你需要使用一种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!" );

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

答案 1 :(得分:1)

我认为在上下文中最好的方法就是像这样包装你的代码

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

    if (guess < numberToGuess)
    {   }

    if (guess == numberToGuess)
    {
        ...
        return;
    }
    else guess();
}

答案 2 :(得分:0)

JavaScript中的循环存在问题:UI在运行时已经死机。所以你需要开始思考&#34;事件&#34;和#34;事件处理程序&#34;。

我们的想法是更新UI或DOM以显示游戏的当前状态。 UI的一部分是文本输入字段,用户可以在其中输入下一个猜测。接下来应该是一个按钮&#34;我是对的吗?&#34;。这两个元素取代了提示。

您现在可以向按钮添加事件/单击处理程序。在处理程序中,您读取输入并检查它。如果错了,请更新用户界面。

如果正确,则隐藏文本字段和按钮。相反,你展示了一些&#34;你赢了!&#34;屏幕加上一个重启游戏的按钮。

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