Я делаю простой 1 - 10 угадывают номер игры с Javascript.
Его можно посмотреть здесь Guessing game
Чтобы сложить счет у меня есть var score = 4
, которые де-приращений каждый раз, когда число угадали (с for
цикла, который меньше 5) неверно. I +=
до var tally
и отобразите tally
в качестве оценки.
Моя проблема score
всегда равна 0 и поэтому ничего не добавляет к подсчету, я изо всех сил пытаюсь найти решение.
Мой браузер:Угадайте, игра номер, счетчик счетчика, дающий неправильный результат
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>
Ваша помощь очень ценится
Что такое 'i <= 5;' предполагается делать? Должен ли быть декремент? – SmokeyPHP
@SmokeyPHP, так что цикл 'for' не повторяется, когда ответ правильный. есть ли лучший способ сделать это? –
Вы, кажется, даже не проверяете, имеет ли пользователь правильный ответ в вашем цикле. Вам нужно проверить и выйти из цикла, если у них есть правильный ответ с 'break'. В противном случае ваш цикл будет всегда выполняться до завершения, а 'score' всегда будет 0. –