Admin - Quiz Setup
questions.forEach((q, index) => {
const questionDiv = document.createElement("div");
questionDiv.classList.add("question");
const questionText = document.createElement("p");
questionText.textContent = `${index + 1}. ${q.questionText}`;
questionDiv.appendChild(questionText);
q.options.forEach((option, optIndex) => {
const label = document.createElement("label");
const radio = document.createElement("input");
radio.type = "radio";
radio.name = `question${index}`;
radio.value = optIndex;
label.appendChild(radio);
label.append(` ${option}`);
questionDiv.appendChild(label);
questionDiv.appendChild(document.createElement("br"));
});
quizForm.appendChild(questionDiv);
});
}
function submitQuiz() {
let score = 0;
questions.forEach((q, index) => {
const selectedOption = document.querySelector(`input[name="question${index}"]:checked`);
if (selectedOption && parseInt(selectedOption.value) === q.correctAnswer) {
score += q.points;
} else if (selectedOption) {
score -= 0.05; // Penalty for incorrect answer
}
});
const name = prompt("Enter your name:");
leaderboard.push({ name, score });
leaderboard.sort((a, b) => b.score - a.score);
localStorage.setItem("leaderboard", JSON.stringify(leaderboard));
document.getElementById("result").textContent = `Your score: ${score}`;
renderLeaderboard();
}
function renderLeaderboard() {
const leaderboardSection = document.getElementById("leaderboardSection");
const leaderboardTable = document.getElementById("leaderboardTable");
leaderboardSection.style.display = "block";
leaderboardTable.innerHTML = `
Rank
Name
Score
`;
leaderboard.forEach((entry, index) => {
const row = leaderboardTable.insertRow();
row.insertCell(0).textContent = `Rank ${index + 1}`;
row.insertCell(1).textContent = entry.name;
row.insertCell(2).textContent = entry.score;
});
}
// Initialize the quiz
renderQuiz();