-
Notifications
You must be signed in to change notification settings - Fork 0
/
script.js
105 lines (92 loc) · 3.52 KB
/
script.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
// Add these lines to the top of your script.js
const correctSound = document.getElementById("correct-sound");
const wrongSound = document.getElementById("wrong-sound");
// Modify checkAnswer function to play sounds
function checkAnswer(answer) {
if (answer === correctAnswer) {
correctSound.play();
score++;
scoreElement.textContent = `Score: ${score}`;
generateQuestion();
} else {
wrongSound.play();
showPopup();
}
}
// script.js
document.addEventListener("DOMContentLoaded", function() {
const questionElement = document.getElementById("question");
const optionsElement = document.getElementById("options");
const scoreElement = document.getElementById("score");
const timerElement = document.getElementById("timer");
const restartBtn = document.getElementById("restart-btn");
const popup = document.getElementById("popup");
const closePopup = document.getElementById("close-popup");
let score = 0;
let correctAnswer;
let timer;
let startTime;
function startGame() {
score = 0;
scoreElement.textContent = `Score: ${score}`;
generateQuestion();
resetTimer();
}
function generateQuestion() {
const num1 = Math.floor(Math.random() * 100) + 1;
const num2 = Math.floor(Math.random() * 100) + 1;
const operators = ['+', '-', '*'];
const operator = operators[Math.floor(Math.random() * operators.length)];
correctAnswer = eval(`${num1} ${operator} ${num2}`);
questionElement.textContent = `${num1} ${operator} ${num2} = ?`;
const answers = generateAnswers(correctAnswer);
optionsElement.innerHTML = "";
answers.forEach(answer => {
const option = document.createElement("div");
option.classList.add("option");
option.textContent = answer;
option.addEventListener("click", () => checkAnswer(answer));
optionsElement.appendChild(option);
});
}
function generateAnswers(correctAnswer) {
const answers = new Set();
answers.add(correctAnswer);
while (answers.size < 4) {
const randomAnswer = Math.floor(Math.random() * 200) - 50;
answers.add(randomAnswer);
}
return Array.from(answers).sort(() => Math.random() - 0.5);
}
function checkAnswer(answer) {
if (answer === correctAnswer) {
score++;
scoreElement.textContent = `Score: ${score}`;
generateQuestion();
} else {
showPopup();
}
}
function showPopup() {
clearInterval(timer);
popup.style.display = "flex";
}
function resetTimer() {
clearInterval(timer);
timerElement.textContent = "00:00.000";
startTime = Date.now();
timer = setInterval(() => {
const elapsed = Date.now() - startTime;
const minutes = String(Math.floor(elapsed / 60000)).padStart(2, '0');
const seconds = String(Math.floor((elapsed % 60000) / 1000)).padStart(2, '0');
const milliseconds = String(elapsed % 1000).padStart(3, '0');
timerElement.textContent = `${minutes}:${seconds}.${milliseconds}`;
}, 10);
}
restartBtn.addEventListener("click", startGame);
closePopup.addEventListener("click", () => {
popup.style.display = "none";
startGame();
});
startGame();
});