const selector = document.getElementById("selector"); const quiz = document.getElementById("quiz"); const resultado = document.getElementById("resultado"); let preguntasCargadas = []; // aquí guardamos el JSON cargado // --- CARGAR EXAMEN --- selector.addEventListener("change", async () => { const url = selector.value; if (!url) return; preguntasCargadas = await fetch(url).then(r => r.json()); mostrarPreguntas(preguntasCargadas); // modo examen normal }); // --- MOSTRAR TODAS LAS PREGUNTAS --- function mostrarPreguntas(preguntas) { quiz.innerHTML = ""; document.getElementById("pregunta-actual").innerHTML = ""; document.getElementById("feedback").textContent = ""; preguntas.forEach(p => { const div = document.createElement("div"); div.className = "pregunta"; div.innerHTML = `

${p.id}. ${p.pregunta}

${Object.entries(p.opciones).map(([letra, texto]) => ` `).join("")} `; quiz.appendChild(div); }); document.getElementById("corregir").onclick = () => corregir(preguntas); } // --- CORREGIR EXAMEN COMPLETO --- function corregir(preguntas) { let aciertos = 0; preguntas.forEach(p => { const marcada = document.querySelector(`input[name="p${p.id}"]:checked`); if (marcada && marcada.value === p.correcta) aciertos++; }); resultado.textContent = `Has acertado ${aciertos} de ${preguntas.length}.`; } // --- MODO PREGUNTA ALEATORIA --- document.getElementById("aleatoria").addEventListener("click", () => { if (preguntasCargadas.length === 0) { alert("Primero selecciona un examen"); return; } const pregunta = preguntasCargadas[Math.floor(Math.random() * preguntasCargadas.length)]; mostrarPreguntaAleatoria(pregunta); }); // --- MOSTRAR UNA PREGUNTA ALEATORIA --- function mostrarPreguntaAleatoria(p) { quiz.innerHTML = ""; // ocultamos el examen completo resultado.textContent = ""; const cont = document.getElementById("pregunta-actual"); const feedback = document.getElementById("feedback"); feedback.textContent = ""; cont.innerHTML = `

${p.id}. ${p.pregunta}

${Object.entries(p.opciones).map(([letra, texto]) => ` `).join("")}
`; document.getElementById("comprobar").onclick = () => { const marcada = document.querySelector(`input[name="respuesta"]:checked`); if (!marcada) { feedback.textContent = "Selecciona una respuesta"; return; } if (marcada.value === p.correcta) { feedback.textContent = "✔ ¡Correcto!"; feedback.style.color = "green"; } else { feedback.textContent = `✘ Incorrecto. La correcta era: ${p.correcta}`; feedback.style.color = "red"; } }; }