到目前为止,我已经创建了一个基本的数字猜谜游戏,目前该数字设置为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();
答案 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重置为原始状态。