Я пишу угадайку в javascript. Я не знаю, как проверить, что число от 0 до 100 через код - PullRequest
2 голосов
/ 21 марта 2020

Упражнение, которое я делаю, - это написать игру в догадки.

Он просит вас написать функцию для пользователя, чтобы ввести угаданное число, написать вторую функцию для проверки кода, написать третью функцию, которая проверяет число и сообщает пользователю, является ли оно слишком высоким или слишком большим низкий.

Моя проблема в том, что, когда я добираюсь до слишком высокой или слишком низкой части, она перестает проверять, находится ли число между 1 и 100. Я перепробовал все, что я знаю, и я все еще в замешательстве. Код работал иначе, прежде чем я положил в переменную ValidNUm.

Я чувствую, что это может быть простой ответ, и я не понимаю, поэтому извините. Дело в том, что мне нужна игра в угадайку для проверки числа, если они ошибаются, они будут вводить число до тех пор, пока оно не будет правильным, тогда оно сообщит им, что проверенное число слишком велико или слишком мало.

То, что произошло раньше, это то, что он проверяет число, но не передает действительный номер для оценки.

var GuessedNumber, RandomNum, ValidNum;

RandomNum = 24; //Math.floor((Math.random() * 100) + 1);
GuessedNumber = EnterGuess();
ValidNum = ValidateGuess(GuessedNumber);

NumberCheck(GuessedNumber, RandomNum, ValidNum);

function EnterGuess() {
  var ArgGuessNum;

  ArgGuessNum = parseFloat(prompt("Please guess a number between 1 and 100"));
  return ArgGuessNum;
}

function ValidateGuess(ArgGuessNum) {
  var ArgValidNum;

  while (ArgGuessNum < 1 || ArgGuessNum > 100) {
    ArgGuessNum = parseFloat(
      prompt("Please guess a valid number between 1 and 100")
    );
  }

  if (ArgGuessNum > 0 || ArgGuessNum < 100) {
    ArgValidNum = ArgGuessNum;
    return ArgValidNum;
  }
  alert("valid number");
}

function NumberCheck(ArgGuessNum, ArgRandomNum, ArgValidNum) {
  var ctr = 1;

  while (ArgValidNum != ArgRandomNum) {
    if (ArgValidNum > ArgRandomNum) {
      ArgGuessNum = parseFloat(
        prompt("Uh-Oh the number is  too high! enter another guess")
      );
      ValidateGuess(ArgGuessNum);
    } else if (ArgValidNum < ArgRandomNum) {
      ArgGuessNum = parseFloat(
        prompt("Uh-Oh the number is  too low! enter another guess")
      );
      ValidateGuess(ArgGuessNum);
    }
    ctr++;
  }

  alert("you took " + ctr + " guesses");
}

1 Ответ

1 голос
/ 21 марта 2020

Когда вы проверяете предполагаемое число внутри NumberCheck(...), вы не присваиваете полученное «действительное» число обратно переменной (поэтому оно никогда не учитывается в следующей итерации l oop.

Вам нужно добавить что-то вроде ArgValidNum = ValidateGuess(ArgValidNum);

Я также пошел и упростил NumberCheck(...), так как вы сравниваете только два числа: одно угаданное и «случайное», созданное в начале.

См. Демонстрационный код ниже

var GuessedNumber, RandomNum, ValidNum;

RandomNum = 24; //Math.floor((Math.random() * 100) + 1);
GuessedNumber = EnterGuess();
ValidNum = ValidateGuess(GuessedNumber);

NumberCheck(RandomNum, ValidNum);

function EnterGuess() {
  return parseFloat(prompt("Please guess a number between 1 and 100"));
}

function ValidateGuess(ArgGuessNum) {
  var ArgValidNum;

  while (ArgGuessNum < 1 || ArgGuessNum > 100) {
    ArgGuessNum = parseFloat(
      prompt("Please guess a valid number between 1 and 100")
    );
  }

  if (ArgGuessNum > 0 || ArgGuessNum <= 100) {
    ArgValidNum = ArgGuessNum;
    return ArgValidNum;
  }
  console.log("valid number");
}

function NumberCheck(ArgRandomNum, ArgValidNum) {
  var ctr = 1;

  while (ArgValidNum !== ArgRandomNum) {
    if (ArgValidNum > ArgRandomNum) {
      ArgValidNum = parseFloat(
        prompt("Uh-Oh the number is  too high! enter another guess")
      );
      ArgValidNum = ValidateGuess(ArgValidNum);
    } else if (ArgValidNum < ArgRandomNum) {
      ArgValidNum = parseFloat(
        prompt("Uh-Oh the number is  too low! enter another guess")
      );
      ArgValidNum = ValidateGuess(ArgValidNum);
    }
    ctr++;
  }

  alert("you took " + ctr + " guesses");
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...