Угадай число JS. Не могу понять куда копать

606
21 октября 2017, 19:20

Задача такова:

Напишите игру «Угадай число». При загрузке страницы генерируется случайное число от 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 = 'Вы ввели число меньше!'
    }
}
Answer 1

Я увы не вижу вариантов как это можно циклом сделать. Предлагаю просто сделать счетчик :

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>

Answer 2

А что мешает сделать так

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
     }
}
READ ALSO
Что за свойства prototype и constructor?

Что за свойства prototype и constructor?

Наблюдения я буду приводить на классе - конструкторе Object, так как отдельно о этих свойствах ничего не нашелНа Современный учебник Javascript есть...

364
Как собрать все файлы js в один на gulp? [требует правки]

Как собрать все файлы js в один на gulp? [требует правки]

Хочу собрать мои скрипты и подключаемые библиотеки в один js файл с помощью gulpПодскажите

233
JavaScript - пинг сервера

JavaScript - пинг сервера

Как на javascript получить пинг определенного сервера в браузере? Пробовал через XMLHttpRequest - выдает ошибку 'No-Acces-Allow-Origin' или 'No HTTPS Connection'

514
Как сгрупировать результаты выбрки в Sphinx (php)

Как сгрупировать результаты выбрки в Sphinx (php)

Доброе время суток господа, возник такой вопрос: Есть php SphinxClient Есть вот такой запрос который идеально отрабатывает:

277