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