我正在使用Javascript进行简单的1 - 10猜数字游戏
它可以在这里查看Guessing game
为了得分,我有一个var score = 4
,每当猜测的数字(小于5的for
循环)不正确时,它会递减。我+=
到var tally
并显示tally
作为分数。
我的问题是score
总是等于0,因此没有添加任何东西来计算,我正在努力寻找解决方案。
我的javascript是:
var tally;
function play() {
var compNum = (Math.random() * 10).toFixed(0);
var score = 4;
for (var i = 0; i < 4; i++) {
if (i == 0) {
var userNum = prompt("Enter a number between 1 and 10");
} else {
if (userNum < compNum) {
userNum = prompt("Guess higher, you have " + (4 - i) + " turns left ", userNum);
} else if (userNum > compNum) {
userNum = prompt("Guess lower you have " + (4 - i) + " turns left ", userNum);
}
}
score--;
}
tally += score;
$("#score").html("score: " + tally);
if (i >= 3 && userNum != compNum) {
var again = confirm("Sorry you lost. The number was: " + compNum + " Play again?");
} else if (userNum == compNum) {
again = confirm("Well done! play again?");
i <= 5;
}
if (again) {
play();
}
if (userNum == "") {
i <= 5;
}
}
HTML:
<button onclick="play()">PLAY</button>
<div id="score"></div>
非常感谢您的帮助
答案 0 :(得分:0)
您应该检查使用输入的数字是否等于随机数,如果是for循环的情况退出。 使用您的代码,循环运行整整4次,
答案 1 :(得分:0)
在你的循环中,你需要检查用户是否有正确的答案,如果他们这样做就退出循环。
for (var i = 0; i < 4; i++) {
if (i == 0) {
var userNum = +prompt("Enter a number between 1 and 10");
} else {
if (userNum < compNum) {
userNum = prompt("Guess higher, you have " + (4 - i) + " turns left ", userNum);
} else if (userNum > compNum) {
userNum = prompt("Guess lower you have " + (4 - i) + " turns left ", userNum);
}
}
if (userNum === compNum) {
// they guessed right, so exit the loop
break;
}
score--;
}
此外,我还会检查isNaN(userNum)
是否检查您的用户是否确实输入了一个号码。如果你想给他们另一个机会,那取决于你。