Задача такова:
Напишите игру «Угадай число». При загрузке страницы генерируется случайное число от 0 до 10. Пользователю дается три попытки угадать число (число вводиться в input). При каждой проверке выдается подсказка: больше или меньше. При угадывании, завершении числа попыток выдается оповещение. Количество попыток выводиться на экран.
Все ок, но не могу понять как реализовать счетчик попыток. Есть мысль циклом их ограничить, но не пойму что положить в переменную.
var prNum, tempOut;
prNum = Math.round(Math.random() * 10);
function guessNum() {
var num, out;
num = document.getElementById('mynum').value;
out = document.getElementById('out');
if (num == prNum) {
out.innerHTML = 'вы угадали!'
} else if (num > 10 || num < 0) {
out.innerHTML = 'Введите число от 0 до 10'
} else if (num > prNum) {
out.innerHTML = 'Вы ввели число больше!'
} else if (num < prNum) {
out.innerHTML = 'Вы ввели число меньше!'
}
}
Я увы не вижу вариантов как это можно циклом сделать. Предлагаю просто сделать счетчик :
var prNum, tempOut;
prNum = Math.round(Math.random() * 10);
var count = 3;
function guessNum() {
var out = document.getElementById('out');
if (count == 0) {
out.innerHTML = 'Попытки кончились :('
return;
}
var num = document.getElementById('mynum').value;
if (num == prNum) {
out.innerHTML = 'вы угадали!'
} else if (num > 10 || num < 0) {
out.innerHTML = 'Введите число от 0 до 10'
} else if (num > prNum) {
out.innerHTML = 'Вы ввели число больше!'
} else if (num < prNum) {
out.innerHTML = 'Вы ввели число меньше!'
}
count--;
}
<input id="mynum" type="number" /><input type="button" onclick="guessNum();" value="guess">
<hr/>
<p id="out"></p>
А что мешает сделать так
var prNum, tempOut, attempts = 3;
prNum = Math.round(Math.random() * 10);
function guessNum() {
var num, out;
num = document.getElementById('mynum').value;
out = document.getElementById('out');
if(attempts == 0) {
out.innerHTML = 'Вы исчерпали все попытки'
return;
}
attempts--;
if (num == prNum) {
out.innerHTML = 'вы угадали! '
} else if (num > 10 || num < 0) {
out.innerHTML = 'Введите число от 0 до 10. Осталось попыток:' + attempts
} else if (num > prNum) {
out.innerHTML = 'Вы ввели число больше! Осталось попыток:' + attempts
} else if (num < prNum) {
out.innerHTML = 'Вы ввели число меньше!Осталось попыток:' + attempts
}
}
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости