我正在为一项学校作业做一个简单的javascript数字游戏,使用math.random生成一个随机数(var = randomDigit),然后让用户想出一个大于1的数字。基本上,他们将他们的数字加倍,JS将我的随机数字加倍并输出。他们将这些数字相加,然后除以2并减去它们的原始数字,得到(var = randomDigit)
这就是我被卡住的地方。我必须这样做,这样如果用户不想玩,它就不会继续下去……我只能使用一个"if“语句。我选择使用prompt()方法...如果你输入YES,就像对话框说的那样,它就能工作,如果你按取消,它就不能工作(好消息)。但如果我输入"NO“,就好像我不想玩这个游戏一样,它仍然有效。
我想要它,这样程序才能在提示对话框中输入“是”。
这是我的JS提琴:http://jsfiddle.net/JrYAq/
function dialog(){
var x;
var randomDigit = Math.floor((Math.random()*20)+1);
var doubleDigit = +randomDigit * 2;
var play = prompt("Would you like to play a game? If not, press cancel below.\n\nThink of a number greater than 1. Confirm you thought of a number by typing the word: YES","Type Here");
if (play==='false')
{
document.getElementById("pick").innerHTML="Sorry, maybe next time.";
}
else (play= "YES");
{
x="1. Now double the number you thought of. I'm going to think of a number too:" + ' ' + doubleDigit + '<br><br>' + "2. Now add my number and your doubled number together." + '<br><br>' + "Now divide the added numbers by 2, then subtract your original number. Did you get" + ' ' + randomDigit + "?" + '<br><br>' + "Pretty cool, right?" ;
document.getElementById("pick").innerHTML=x;
}
}
发布于 2013-06-21 11:42:47
稍微调整一下就可以了
if (play== "YES")
{
x="1. Now double the number you thought of. I'm going to think of a number too:" + ' ' + doubleDigit + '<br><br>' + "2. Now add my number and your doubled number together." + '<br><br>' + "Now divide the added numbers by 2, then subtract your original number. Did you get" + ' ' + randomDigit + "?" + '<br><br>' + "Pretty cool, right?" ;
document.getElementById("pick").innerHTML=x;
} else {
document.getElementById("pick").innerHTML="Sorry, maybe next time.";
}
演示:Fiddle
发布于 2013-06-21 11:50:36
函数的作用是:返回用户在文本框中输入的值,而不是用户单击的按钮的值。因此,play
的值永远不会是'false',除非用户在文本框中输入了'false‘。
试着这样做:
var play = prompt("Would you like to play a game? If not, press cancel below.\n\nThink of a number greater than 1. Confirm you thought of a number by typing the word: YES","Type Here");
if (play === "YES")
{
x="1. Now double the number you thought of. I'm going to think of a number too:" + ' ' + doubleDigit + '<br><br>' + "2. Now add my number and your doubled number together." + '<br><br>' + "Now divide the added numbers by 2, then subtract your original number. Did you get" + ' ' + randomDigit + "?" + '<br><br>' + "Pretty cool, right?" ;
document.getElementById("pick").innerHTML=x;
}
else
{
document.getElementById("pick").innerHTML="Sorry, maybe next time.";
}
此外,由于这更像是或否类型的情况,因此您可能希望使用confirm()而不是prompt()。
发布于 2013-06-21 11:54:21
else (play=“是”);
是一个赋值(不是比较),在括号中,后跟行分隔符。它后面的块将始终被执行。您的脚本当前的工作方式与编写脚本的方式相同
if (play==='false') {
document.getElementById("pick").innerHTML="Sorry, maybe next time.";
} else {
play= "YES";
x="1. Now double the number you thought of. I'm going to think of a number too:" + ' ' + doubleDigit + '<br><br>' + "2. Now add my number and your doubled number together." + '<br><br>' + "Now divide the added numbers by 2, then subtract your original number. Did you get" + ' ' + randomDigit + "?" + '<br><br>' + "Pretty cool, right?" ;
document.getElementById("pick").innerHTML=x;
您似乎想要一个else-if-语句:
if (play == "false") {
document.getElementById("pick").innerHTML = "Sorry, maybe next time.";
} else if (play == "YES") {
x="1. Now double the number you thought of. I'm going to think of a number too:" + ' ' + doubleDigit + '<br><br>' + "2. Now add my number and your doubled number together." + '<br><br>' + "Now divide the added numbers by 2, then subtract your original number. Did you get" + ' ' + randomDigit + "?" + '<br><br>' + "Pretty cool, right?" ;
document.getElementById("pick").innerHTML = x;
} /* else {
alert("neither 'false' nor 'YES' were entered");
} */
https://stackoverflow.com/questions/17227334
复制相似问题