Online Quiz for Primary 3 – Unit 6 Quiz: Environment in Our Sector

Online Quiz for Primary 3 - Unit 6 Quiz: Environment in Our Sector

0
18
Primary 3 Unit 6 Quiz – Environment

Primary 3 – Unit 6 Quiz: Environment in Our Sector

Time Left: 45:00

Leaderboard

    Q${i+1}: ${q.q}

    `; const answersDiv = document.createElement('div'); answersDiv.className = "answers"; q.a.forEach((ans, j) => { answersDiv.innerHTML += ` `; }); div.appendChild(answersDiv); quizForm.appendChild(div); }); // ==== TIMER ==== let timeLeft = 45 * 60; // 45 minutes const timerEl = document.getElementById('timer'); const timerInterval = setInterval(() => { const min = Math.floor(timeLeft / 60); const sec = timeLeft % 60; timerEl.textContent = `Time Left: ${min}:${sec < 10 ? '0' : ''}${sec}`; timeLeft--; if(timeLeft < 0) { clearInterval(timerInterval); submitQuiz(); } }, 1000); // ==== LEADERBOARD SYSTEM ==== let leaderboard = JSON.parse(localStorage.getItem('leaderboard')) || []; function updateLeaderboard(score) { const name = prompt("Enter your name for leaderboard:"); leaderboard.push({name, score}); leaderboard.sort((a,b) => b.score - a.score); leaderboard = leaderboard.slice(0,10); // keep top 10 localStorage.setItem('leaderboard', JSON.stringify(leaderboard)); displayLeaderboard(); } function displayLeaderboard() { const list = document.getElementById('leaderboardList'); list.innerHTML = ''; leaderboard.forEach((entry, index) => { const li = document.createElement('li'); li.style.backgroundColor = index % 2 === 0 ? '#f1c40f' : '#f39c12'; li.textContent = `${entry.name} - ${entry.score} / ${questions.length}`; list.appendChild(li); }); } displayLeaderboard(); // ==== SUBMIT QUIZ ==== document.getElementById('submitBtn').addEventListener('click', submitQuiz); function submitQuiz() { clearInterval(timerInterval); let score = 0; questions.forEach((q, i) => { const answer = document.querySelector(`input[name="q${i}"]:checked`); if(answer && parseInt(answer.value) === q.correct) { score++; } }); document.getElementById('score').textContent = `Your Score: ${score} / ${questions.length}`; updateLeaderboard(score); }