Quiz Littéraire Interactif
// QUESTIONS DU QUIZ
const questions = [
{
question: "Quel type de lecture recherches-tu en ce moment ?",
key: "typeLecture",
options: ["Réfléchir profondément", "Spirituel / Religieux", "Détente et divertissement", "Biographie / Récit réel", "Peu importe"]
},
{
question: "Quelle longueur de livre préfères-tu ?",
key: "longueur",
options: ["0 à 50 pages","51 à 150 pages","151 à 300 pages","301 à 500 pages","500 pages et plus","Peu importe"]
},
{
question: "Quel ton veux-tu pour ton livre ?",
key: "ton",
options: ["Touchant / Émouvant","Triste / Mélancolique","Drôle / Humoristique","Sérieux / Intense","Suspense / Captivant","Épique / Aventure","Peu importe"]
},
{
question: "Dans quelle région du monde se passe l'histoire ?",
key: "region",
options: ["Europe","Asie / Moyen-Orient","Amérique du Nord","Afrique","Amérique du Sud","Imaginaire / Fantastique","Peu importe"]
},
{
question: "Quel âge ont les personnages principaux ?",
key: "age",
options: ["Enfant","Adolescent","Jeune adulte","Adulte","Multigénérationnel","Tout âge","Peu importe"]
},
{
question: "Quel style de narration préfères-tu ?",
key: "narration",
options: ["Première personne","Troisième personne","Narration multiple","Basique","Peu importe"]
},
{
question: "Quel type de fin préfères-tu ?",
key: "fin",
options: ["Heureuse","Tragique / Émotive","Ouverte / Réflexive","Twist / Surprise","Peu importe"]
},
{
question: "Veux-tu que le livre se passe en période de guerre ou conflit ?",
key: "conflit",
options: ["Oui","Non","Peu importe"]
},
{
question: "Acceptes-tu la présence de scènes choquantes ?",
key: "choquant",
options: ["Oui","Non","Peu importe"]
},
{
question: "Préférence pour le sexe de l'auteur ?",
key: "sexeAuteur",
options: ["Femme","Homme","Peu importe"]
}
];
let currentQuestionIndex = 0;
let answers = {};
// AFFICHER LA QUESTION
function showQuestion() {
const quizDiv = document.getElementById("quiz");
quizDiv.innerHTML = "";
if (currentQuestionIndex >= questions.length) {
showResult();
return;
}
const q = questions[currentQuestionIndex];
const h2 = document.createElement("h2");
h2.textContent = q.question;
quizDiv.appendChild(h2);
q.options.forEach(option => {
const btn = document.createElement("button");
btn.textContent = option;
btn.onclick = () => {
answers[q.key] = option;
currentQuestionIndex++;
showQuestion();
};
quizDiv.appendChild(btn);
});
}
// FILTRER LES LIVRES ET AFFICHER LES RÉSULTATS
function showResult() {
const quizDiv = document.getElementById("quiz");
quizDiv.innerHTML = "Résultat(s) :
";
let filteredBooks = books.filter(book => {
return Object.keys(answers).every(key => {
return answers[key] === "Peu importe" ||
(Array.isArray(book[key]) ? book[key].includes(answers[key]) : book[key] === answers[key]);
});
});
if(filteredBooks.length === 0){
quizDiv.innerHTML += "Aucun livre ne correspond à ta recherche.
";
return;
}
filteredBooks.forEach(book => {
const div = document.createElement("div");
div.className = "book-result";
div.innerHTML = `${book.titre} de ${book.auteur}`;
quizDiv.appendChild(div);
});
}
// LANCER LE QUIZ
showQuestion();