57 - Desafío 4: Examen múltiple opciones con banderas del mundo
Problema:
pagina.html
estilos.css
funciones.js
Ejecución de la página
Prueba
* { margin: 0; padding: 0; } #juego { margin: 0 auto; width: 820px; display: flex; flex-direction: column; justify-content: center; height: 100vh; } img { width: 820px; height: 400px; border: 1px solid black; box-shadow: 0 0 10px black; margin-bottom: 1rem; } .boton { width: 204px; height: 100px; font-family: 'Lucida Sans', 'Lucida Sans Regular', 'Lucida Grande', 'Lucida Sans Unicode', Geneva, Verdana, sans-serif; font-size: 1.2rem; white-space: normal; box-shadow: 0 0 10px black; } #botones { display: flex; margin-bottom: 1rem; } #resultados { font-size: 2.5em; font-family: Georgia, 'Times New Roman', Times, serif; border: 1px solid black; box-shadow: 0 0 10px black; padding: 20px; }
function proximaBandera() { const paises = [] let cant = 0 do { let aleatorio = Math.trunc(Math.random() * 250) if (!paises.includes(aleatorio)) { paises.push(aleatorio) cant++ } } while (cant < 4); let correcta = Math.trunc(Math.random() * 4) let pos = paises[correcta] let pregunta = `<img src="${datos[pos].flags.png}">` const d = document.querySelector("#contenedor") d.innerHTML = pregunta pregunta = ` <input class="boton" type="button" value="${datos[paises[0]].name.common}" id="b1"> <input class="boton" type="button" value="${datos[paises[1]].name.common}" id="b2"> <input class="boton" type="button" value="${datos[paises[2]].name.common}" id="b3"> <input class="boton" type="button" value="${datos[paises[3]].name.common}" id="b4"> ` const b = document.querySelector("#botones") b.innerHTML = pregunta for (let f = 1; f <= 4; f++) document.querySelector(`#b${f}`).addEventListener('click', evt => { if (correcta == `${f - 1}`) correctas++ else { incorrectas++ alert(`Es la bandera de ${datos[paises[correcta]].name.common}`) } actualizarResultados() }) } function actualizarResultados() { document.querySelector("#resultados").innerHTML = ` <p>Correctas: ${correctas}</p> <p>Incorrectas: ${incorrectas}</p>` proximaBandera() } let correctas = 0 let incorrectas = 0 let datos = null fetch("https://restcountries.com/v3.1/all") .then(response => response.json()) .then(bande => { datos = bande actualizarResultados() })
No tiene disponible el navegador la capacidad de iframe
Retornar