-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathscript.js
More file actions
119 lines (99 loc) · 3.39 KB
/
script.js
File metadata and controls
119 lines (99 loc) · 3.39 KB
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
106
107
108
109
110
111
112
113
114
115
116
117
118
119
let currentQuestion = 0;
let score = 0;
let playerName = "";
function startGame() {
const nameInput = document.getElementById("player-name");
if (nameInput.value.trim() === "") {
alert("Por favor, escribe tu nombre.");
return;
}
playerName = nameInput.value.trim();
document.getElementById("start-screen").classList.add("hidden");
document.getElementById("quiz").classList.remove("hidden");
showQuestion();
}
function showQuestion() {
const question = questions[currentQuestion];
document.getElementById("question").textContent = question.question;
const optionsDiv = document.getElementById("options");
optionsDiv.innerHTML = "";
question.options.forEach(option => {
const btn = document.createElement("button");
btn.textContent = option;
btn.onclick = () => checkAnswer(option);
optionsDiv.appendChild(btn);
});
}
function checkAnswer(selected) {
const correct = questions[currentQuestion].answer;
// Deshabilitar todos los botones
document.querySelectorAll("#options button").forEach(btn => {
btn.disabled = true;
// Resaltar la respuesta correcta
if (btn.textContent === correct) {
btn.classList.add("correct");
} else if (btn.textContent === selected) {
// Resaltar la respuesta seleccionada si es incorrecta
btn.classList.add("incorrect");
}
});
// Incrementar el puntaje si la respuesta es correcta
if (selected === correct) {
score++;
}
// Mostrar mensaje de retroalimentación
const feedback = document.createElement("p");
feedback.id = "feedback";
feedback.textContent =
selected === correct
? "¡Correcto! 🎉"
: `Incorrecto. La respuesta correcta es: ${correct}`;
document.getElementById("quiz").appendChild(feedback);
}
function nextQuestion() {
// Eliminar el mensaje de retroalimentación si existe
const feedback = document.getElementById("feedback");
if (feedback) {
feedback.remove();
}
currentQuestion++;
if (currentQuestion < questions.length) {
showQuestion();
} else {
endGame();
}
}
function endGame() {
document.getElementById("quiz").classList.add("hidden");
document.getElementById("result").classList.remove("hidden");
document.getElementById("score").textContent = `${playerName}, tu puntaje es ${score}/${questions.length}`;
saveScore(playerName, score);
}
function restartGame() {
currentQuestion = 0;
score = 0;
document.getElementById("result").classList.add("hidden");
document.getElementById("quiz").classList.remove("hidden");
showQuestion();
}
function goToStart() {
document.getElementById("ranking").classList.add("hidden");
document.getElementById("start-screen").classList.remove("hidden");
document.getElementById("player-name").value = "";
currentQuestion = 0;
score = 0;
}
function showRanking() {
document.getElementById("result").classList.add("hidden");
document.getElementById("ranking").classList.remove("hidden");
const scores = JSON.parse(localStorage.getItem("triviaScores")) || [];
scores.sort((a, b) => b.score - a.score); // Ordenar por puntaje descendente
const topScores = scores.slice(0, 10); // Mostrar solo los 10 primeros
const list = document.getElementById("ranking-list");
list.innerHTML = "";
topScores.forEach((entry, index) => {
const li = document.createElement("li");
li.textContent = `${index + 1}. ${entry.name}: ${entry.score} pts`;
list.appendChild(li);
});
}