#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
};
}