Угадай число - создавая диапазон номеров JavaScript - PullRequest
2 голосов
/ 08 января 2020

В настоящее время я пытаюсь создать игру «Угадай число», используя Javascript. Я установил код для отображения другого выхода в зависимости от введенного числа.

Однако я бы хотел добавить диапазон к этому. Например, если предположение находится в пределах 10, выше или ниже, вывод должен выглядеть как «Почти». Однако, если пользователь находится вне этого диапазона, он должен прочитать что-то другое.

Какую операцию использовать? В настоящее время я просто использую:

    if(userGuess < randomNumber) {
            lowOrHi.textContent = 'Your guess is out by 10 – please guess again!';

Но это не отражает диапазон, как мне бы хотелось.

Ответы [ 3 ]

3 голосов
/ 08 января 2020

вы можете использовать абсолютное значение, чтобы получить расстояние между userGuess и randomNumber

, вы можете получить его с помощью Math.abs

const randomNumber = 4 // chosen by fair dice roll.
                       // guaranteed to be random.
                   
let userGuesses = [42, -15, 2]

for (let guess of userGuesses) {
  if (Math.abs(guess - randomNumber) <= 5) {
    // the guess is in the range [random - 5; random + 5]
    console.log(`guess ${guess} is very close`)
  } else if (Math.abs(guess - randomNumber) <= 20) {
    // the guess is in the range [random - 20; random + 20]
    console.log(`guess ${guess} is not that far`)
  } else {
    console.log(`guess ${guess} is pretty far`)
  }
}
, как вы можете видеть, это работает, если вы находитесь под нужным номером или над ним
1 голос
/ 08 января 2020

Вы должны проверить, находится ли разница между угаданным числом и случайным числом в диапазоне 10.

var difference = Math.abs(userGuess - randomNumber);
if(difference > 10) {
    lowOrHi.textContent = 'Your guess is out by 10 – please guess again!';
} else {
    lowOrHi.textContent = 'Your guess is almost correct!';
}
0 голосов
/ 08 января 2020

Попробуйте следующее

if((userGuess-randomNumber)<-10||(userGuess-randomNumber)>10) {
    console.log('Your guess is out by 10 – please guess again!');}
else {
    console.log("Almost");
}
...