猜一个随机数

时间:2020-08-17 09:19:10

标签: javascript html

我正在学习Javascript,并且我试图猜测“游戏”的数量很少,我想你可以称之为。 出现提示,询问您的电话号码是多少。该输入将存储在变量中,然后您可以生成一个随机数。

我想这样做,如果您的猜测等于随机生成的数字,则控制台会记录一条消息。

HTML

<div class="random-wrapper">
    <div class="random-content">
        <h1>Random Number Generator</h1>
        <p>Generate a random number between <span id="num1"></span>and <span id="num2"></span></p>
        <button id="generate" onclick="generateNumber();">Generate</button>
        <h2>Your random number is: <span id="result"></span></h2>
    </div>
</div>

JS:

let guess = prompt("What is your guess?");
let num1 = document.getElementById("num1");
let num2 = document.getElementById("num2");
let result = document.getElementById("result");

num1 = 1;
num2 = 10;
result.innerText = 0;

function generateNumber() {
    result.innerText = (Math.floor(Math.random() * num2) +1 );
    console.log(result);

    if (result == guess) {
        console.log("Your guess was correct!")
    };
}

2 个答案:

答案 0 :(得分:0)

这样的结果是否必要?另外,我添加了匹配数:)该行是匹配数。

let guess = prompt("What is your guess?");
let num1 = document.getElementById("num1");
let num2 = document.getElementById("num2");
let result = document.getElementById("result");
let result_matches = document.getElementById("matches");

num1 = 1;
num2 = 10;
result.innerText = 0;
number_matches = 0;

function generateNumber() {
    random_number = (Math.floor(Math.random() * num2) +1 );
    result.innerText = random_number;
    result_matches.innerText = number_matches;

    if (random_number == guess) {
        number_matches++;
        console.log(result.innerText + " --- " + "Your guess was correct!")
    } else {
        console.log(result.innerText);
    }
}
<div class="random-wrapper">
    <div class="random-content">
        <h1>Random Number Generator</h1>
        <p>Generate a random number between <span id="num1"></span>and <span id="num2"></span></p>
        <button id="generate" onclick="generateNumber();">Generate</button>
        <h2>Your random number is: <span id="result"></span></h2>
        <h2>Number of matches: <span id="matches"></span></h2>
    </div>
</div>

答案 1 :(得分:0)

这是一个演示

const stringToIntegerNumber = (inputString) => {
  if(inputString == null) return;

  const number = Number.parseInt(inputString, 10);
  if(!Number.isInteger(number)) return;

  return number;
};

const promptIntegerStringTemplate = ({min, max} = {}) => {
  const existMinMax = min != null && max != null;
  
  const promptString = [
    'Enter a integer',
    ` [${min}-${max}]`,
    ': '
  ];

  return existMinMax ? promptString.join('') : promptString[0] + promptString[2];
}

const askIntegerNumber = ({min, max} = {}) => {
  let number, input;

  const promptString = promptIntegerStringTemplate({min, max});
  do {
    input = prompt(promptString);
    number = stringToIntegerNumber(input);
  } while(number == null);

  return number;
};

const isValidIntegerNumberInRange = (number, min, max) => {
  if(number == null || min == null || max == null
     || ( !Number.isInteger(number) )
     || ( !Number.isInteger(min) )
     || ( !Number.isInteger(max) )
    ) return;

  return number >= min && number <= max;
};

const generateRandomIntegerNumber = ({min = 0, max = 10} = {}) => {
  if( ( !Number.isInteger(min) )
     || ( !Number.isInteger(max) ) ) return;

  return min + Math.floor(Math.random() * max);
};

const makeGuess = (min, max) => {
  let guess, validatedNumber;
  do {
    guess = askIntegerNumber({min, max});
    validatedNumber = isValidIntegerNumberInRange(guess, min, max) ? guess: null;
  } while(validatedNumber == null);

  return validatedNumber;
};

const updateNumber = (min, max) => {
  const num1 = document.querySelector('#num1');
  const num2 = document.querySelector('#num2');

  num1.textContent = min;
  num2.textContent = max;
};

const playGame = (min, max, randomInteger) => {
  const guess = makeGuess(min, max);
  if(guess === randomInteger)
    console.log(`Guess ${guess} is correct.`);
  else 
    console.log(`Guess ${guess} is incorrect.\nCorrect answer is ${randomInteger}`);
    
  //Visuals
  const result = document.querySelector('#result');
  result.textContent = randomInteger;
}

const domainControler = () => {
  const [min, max] = [1, 10];
  const randomInteger = generateRandomIntegerNumber({min, max});

  //Visuals
  updateNumber(min, max);

    //Play
  setTimeout(() => playGame(min, max, randomInteger), 5);
  
};

const setup = () => {
  const generate = document.querySelector('#generate');
  generate.addEventListener('click', domainControler);
};

window.addEventListener('load', setup);
<div class="random-wrapper">
    <div class="random-content">
        <h1>Random Number Generator</h1>
        <p>Generate a random number between <span id="num1"></span>and <span id="num2"></span></p>
        <button id="generate">Generate</button>
        <h2>Your random number is: <span id="result"></span></h2>
    </div>
</div>

相关问题