Respuesta ejercicio 1 refactorizada

// Guardo el estado del juego
let juego = {
    puntos: 0,
    preguntas: [{
        pregunta: "¿Con qué propiedad se pone el color de fondo en CSS?",
        correcta: "backgroundColor",
        incorrecta1: "color",
        incorrecta2: "bckColor",
        incorrecta3: "setColor"
    },
    {
        pregunta: "¿tipo de letra en CSS?",
        correcta: "font-family",
        incorrecta1: "fontaine",
        incorrecta2: "letter",
        incorrecta3: "pp"
    },
    {
        pregunta: "¿ocultar elemento en CSS?",
        correcta: "display:none",
        incorrecta1: "display:hide",
        incorrecta2: "shadow",
        incorrecta3: "esconding"
    }]
}

// Espero a que se cargue la página
window.onload = function () {
    let boton = document.getElementById("boton");
    // Llamo a la función jugar
    boton.addEventListener("click", jugar);
}

// Aquí está la lógica del juego
function jugar() {
    // puntos que valdrán 0
    juego.puntos = 0;
    // Recorrer el array de las preguntas
    for (let pregunta of juego.preguntas) {

        // Desordeno las respuestas
        let respuestas = getRespuestasDesordenadas(pregunta);

        // Creo una cadena numerada con las respuestas
        let cadena = getCadenaArray(respuestas);
        let respuesta = Number(prompt(pregunta.pregunta + "\n" + cadena));

        // Compruebo que la respuesta esté bien
        if (respuestas[respuesta - 1] == pregunta.correcta) {
            alert("Muy bien");
            juego.puntos++;
        } else {
            alert("Muy mal, looser");
        }

    }
    // Al acabar de recorrer le mostramos los puntos
    alert("Has sacado " + juego.puntos + " puntos");

}
function getRespuestasDesordenadas({ correcta, incorrecta1, incorrecta2, incorrecta3 }) {
    let respuestas = [correcta, incorrecta1, incorrecta2, incorrecta3];
    // Desordeno el array
    respuestas.sort(() => .5 - Math.random());
    return respuestas;
}
function getCadenaArray(respuestas, separador = "  -  ") {
    let cadena = respuestas.map((valor, indice) => (indice + 1) + ") " + valor).join(separador);
    return cadena;
}

Publicado por

Juan Pablo Fuentes

Formador de programación y bases de datos