Игра на умножение случайных чисел

#javascript

#javascript

Вопрос:

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

 // button to start and reset the game

btn.addEventListener("click", function(){
    display.textContent = equation;
    displayStyle();
    for(var i=0;i<text.length; i  ){
        text[i].textContent=answer[i];
        btn.textContent="Play Again!"
    }
});

// push the random numbers in an array to be looped unto the screen

function answers(n){
    var correct = []; 
    for(var i = 0; i<n;i  ){
        correct.push(randomAnswers());
    }
    return correct;
}

// the random 2 numbers that are multiply and seen by the user

function multply(){
    var x =Math.floor(Math.random()*11);
    var y =Math.floor(Math.random()*11);

    return x "x" y "= ";
}

function displayStyle(){
    display.style.fontSize = '5rem';
    display.style.border="1px white solid";
    display.style.marginLeft="34%";
    display.paddingRight="5%";
}
  

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

 function randomAnswers(){
    var a =Math.floor(Math.random()*11);
    var b =Math.floor(Math.random()*11);
    return a*b;
}
  

Ответ №1:

Проблема в том, что multply выбираются два новых случайных числа, а не любое из чисел, которые использовались для создания вариантов.

randomAnswers() Функция должна включать a и b в возвращаемое значение. Затем вы можете выбрать случайный элемент из answers массива, отобразить числа, которые были умножены, и проверить, соответствует ли ответ произведению.

 let correctAnswer;

btn.addEventListener("click", function() {
  const answer = answers(4);
  const chosen = answer[Math.floor(answer.length * Math.random())];
  display.textContent = multiply(chosen.a, chosen.b);
  correctAnswer = chosen.answer;
  for (var i = 0; i < answer.length; i  ) {
    text[i].textContent = answer[i].answer;
  }
  btn.textContent = "Play Again!"
});

// push the random numbers in an array to be looped unto the screen

function answers(n) {
  var correct = [];
  for (var i = 0; i < n; i  ) {
    correct.push(randomAnswers());
  }
  return correct;
}

// the random 2 numbers that are multiply and seen by the user

function multply(x, y) {
  return x   "x"   y   "= ";
}

function randomAnswers() {
  var a = Math.floor(Math.random() * 11);
  var b = Math.floor(Math.random() * 11);
  return {
    a,
    b,
    answer: a * b
  };
}