document.
addEventListener(
"DOMContentLoaded"
,
function
() {
const expressionElement =
document.querySelector(
'.expression'
);
const answerInput =
document.getElementById(
'answerInput'
);
const submitButton =
document.getElementById(
'submitButton'
);
const timerElement =
document.getElementById(
'timer'
);
const scoreElement =
document.getElementById(
'score'
);
const feedbackElement =
document.getElementById(
'feedback'
);
const correctCountElement =
document.getElementById(
'correctCount'
);
const incorrectCountElement =
document.getElementById(
'incorrectCount'
);
let score = 0;
let correctCount = 0;
let incorrectCount = 0;
let timeLeft = 60;
function
generateExpression() {
const operands = [
'+'
,
'-'
,
'*'
,
'/'
];
const randomOperand =
operands[Math.floor(Math.random() * operands.length)];
let num1, num2;
switch
(randomOperand) {
case
'+'
:
num1 = Math.floor(Math.random() * 100);
num2 = Math.floor(Math.random() * 100);
break
;
case
'-'
:
num1 = Math.floor(Math.random() * 100);
num2 = Math.floor(Math.random() * num1);
break
;
case
'*'
:
num1 = Math.floor(Math.random() * 20);
num2 = Math.floor(Math.random() * 20);
break
;
case
'/'
:
num2 = Math.floor(Math.random() * 20) + 1;
num1 = num2 * Math.floor(Math.random() * 20);
break
;
default
:
break
;
}
expressionElement.textContent =
`${num1} ${randomOperand} ${num2}`;
}
function
updateScore() {
score++;
scoreElement.textContent = score;
}
function
updateCorrectCount() {
correctCount++;
correctCountElement.textContent = correctCount;
}
function
updateIncorrectCount() {
incorrectCount++;
incorrectCountElement.textContent = incorrectCount;
}
function
updateTime() {
timeLeft--;
timerElement.textContent = timeLeft;
}
function
checkAnswer() {
const userAnswer = answerInput.value.trim();
if
(!userAnswer) {
alert(
"Please enter your answer."
);
return
;
}
const expression = expressionElement.textContent;
const result = eval(expression);
if
(parseInt(userAnswer) === result) {
updateScore();
updateCorrectCount();
feedbackElement.textContent =
'Correct!'
;
feedbackElement.classList.remove(
'text-red-500'
);
feedbackElement.classList.add(
'text-green-500'
);
}
else
{
updateIncorrectCount();
feedbackElement.textContent =
'Incorrect!'
;
feedbackElement.classList.remove(
'text-green-500'
);
feedbackElement.classList.add(
'text-red-500'
);
}
feedbackElement.classList.remove(
'hidden'
);
setTimeout(() => {
feedbackElement.classList.add(
'hidden'
);
generateExpression();
answerInput.value =
''
;
}, 1000);
}
generateExpression();
const timerInterval = setInterval(() => {
updateTime();
if
(timeLeft === 0) {
clearInterval(timerInterval);
submitButton.disabled =
true
;
answerInput.disabled =
true
;
feedbackElement.textContent =
`Game Over! Final score: ${score}`;
feedbackElement.classList.remove(
'hidden'
);
}
}, 1000);
submitButton.addEventListener(
'click'
, () => {
checkAnswer();
});
});