Проблема с рекурсией, зациклился Alert

console.log проверил все участки кода, все работает - строка приводится к числу в realNum, операторы сравнения работают. Косяк какой то в alert, не могу понять почему при нажатии на ок не срабатывает заново вызов функции game()?

'use strict';

//Функции
//Проверка, что введённые данные являются числом
const isNumber = function (n) {
  return !isNaN(parseFloat(n)) && isFinite(n);
};
//Игра
const start = function () {
  let gameNum = Math.floor(Math.random() * 100) + 1;
  console.log('Загаданное число: ' + gameNum);
  let gameNumUser = prompt('Угадай число от 1 до 100');
  const game = function () {
    if (gameNumUser === null) {
      alert('Игра окончена');
      return;
    }
    if (isNumber(gameNumUser)) {
      const realNum = +gameNumUser;
      if (realNum > gameNum) {
        alert('Загаданное число меньше');
        game();
      } else if (realNum < gameNum) {
        alert('Загаданное число больше');
        game();
      } else {
        if (confirm('Угадали! Сыграем ещё?')) {
          start();
        } else {
          alert('Как хотите, до свидания!');
          return;
        }
      }
    } else {
      alert('Введите число');
      game();
    }
  };
  game();
};

start();


Ответы (1 шт):

Автор решения: Stepan Chuev

<!DOCTYPE html>
<head> 
<meta charset="utf-8" />
</head>
<body>
<script>
function randomNumber(){
    let number = Math.floor(Math.random()*100);
    let result = prompt(`Введите число`)
    if(result==number){
    return alert(`Вы угадали число`)
    }else if(result < number){
     alert(`Ваше число меньше загаданного!`)
    }else if(result > number){
     alert(`число больше загаданного!`)
    }
    
    return alert(`вы не угадали число`)
   }
    randomNumber()
   </script>
</body>
</html>

→ Ссылка