This Game is a multiplication game where player gets 4 options to choose from for example 4*5 and user has to choose between 20 and 3 other wrong answers but once user selects the right option it doesn't increment the score although correct answer === users choice, i am new to JavaScript so please give full explanation to why the logic isn't working . This is the HTML
"use strict";
const resetBtn = document.querySelector(".reset");
const Navscore = document.querySelector(".ScoreNumber");
const scoreToReset = document.querySelector(".score");
const question = document.querySelector(".question");
const highScoreNumber = document.querySelector(".highScoreNumber");
const choices1 = document.getElementById("1");
const choices2 = document.getElementById("2");
const choices3 = document.getElementById("3");
const choices4 = document.getElementById("4");
const answer1 = document.querySelector(".answer1");
const answer2 = document.querySelector(".answer2");
const answer3 = document.querySelector(".answer3");
const answer4 = document.querySelector(".answer4");
const choices = document.querySelector(".choices");
let score = 0;
let Highscore = 0;
const numberForNumberGen = function() {
return Math.trunc(Math.random() * 12 + 1);
};
const choicesAssinger = function(usersChoice) {
// document.getElementById(correct).innerHTML = questionGen();
console.log(`user choice ${usersChoice}`);
const answerText = questionGen();
const correct = numberGen(4);
console.log(`correct choice ${correct}`);
if (correct === 1) {
answer1.innerHTML = answerText;
answer2.innerHTML = answerText + numberForNumberGen();
answer3.innerHTML = answerText - numberForNumberGen();
answer4.innerHTML =
answerText + numberForNumberGen() - numberForNumberGen();
} else if (correct === 2) {
answer2.innerHTML = answerText;
answer1.innerHTML = answerText - numberForNumberGen();
answer4.innerHTML = answerText - numberForNumberGen();
answer3.innerHTML =
answerText + numberForNumberGen() - numberForNumberGen();
} else if (correct === 3) {
answer3.innerHTML = answerText;
answer4.innerHTML = answerText + numberForNumberGen();
answer2.innerHTML = answerText - numberForNumberGen();
answer1.innerHTML =
answerText + numberForNumberGen() - numberForNumberGen();
} else if (correct === 4) {
answer4.innerHTML = answerText;
answer3.innerHTML = answerText + numberForNumberGen();
answer1.innerHTML = answerText - numberForNumberGen();
answer2.innerHTML =
answerText + numberForNumberGen() - numberForNumberGen();
}
// return correct;
console.error(correct);
console.error(usersChoice);
console.log(correct == usersChoice);
if (correct == usersChoice) {
console.log("correct");
document.querySelector("body").style.background = "green";
score++;
questionGen();
choicesAssinger();
Navscore.innerHTML = score;
if (score > Highscore) {
Highscore = score;
highScoreNumber.innerHTML = Highscore;
}
} else {
if (score !== 0) {
document.querySelector("body").style.background = " #925e36";
Navscore.innerHTML = "Please click Reset";
choices1.removeEventListener("click", handler);
choices2.removeEventListener("click", handler);
choices3.removeEventListener("click", handler);
choices4.removeEventListener("click", handler);
}
}
// return rightChoiceNumber;
};
const start = () => {
// choicesAssinger();
choices1.addEventListener("click", handler);
choices2.addEventListener("click", handler);
choices3.addEventListener("click", handler);
choices4.addEventListener("click", handler);
};
const numberGen = function(n) {
const number = Math.trunc(Math.random() * n + 1);
return number;
};
const questionGen = function() {
const num1 = numberGen(numberForNumberGen());
const num2 = numberGen(numberForNumberGen());
const answer = num1 * num2;
console.log(answer);
const questionWriting = `${num1} x ${num2}`;
question.innerHTML = questionWriting;
return answer;
};
function handler(event) {
const usersChoice = event.target.id;
choicesAssinger(usersChoice);
}
resetBtn.addEventListener("click", () => {
start();
document.querySelector("body").style.background = " #925e36";
score = 0;
Navscore.innerHTML = 0;
questionGen();
});
questionGen();
// choicesAssinger();
start();
<nav>
<div class="reset utilites">Reset</div>
<div class="score utilites">
Score: <span class="ScoreNumber"> 0</span>
</div>
<div class="highScore utilites">
High Score: <span class="highScoreNumber"> 0</span>
</div>
</nav>
<section>
<div class="choices" id="1">
<div class="answer answer1">answer</div>
</div>
<div class="choices" id="2">
<div class="answer answer2">answer</div>
</div>
<div class="choices" id="3">
<div class="answer answer3">answer</div>
</div>
<div class="choices" id="4">
<div class="answer answer4">answer</div>
</div>
</section>
<div class="question">---</div>