const readline = require('readline'); // interface pporu écriture et lecture const rl = readline.createInterface({ input: process.stdin, output: process.stdout }); // tableau de devinettes const devinettes = [ { question: "Quelle est la capitale de la France ?", reponse: "paris" }, { question: "Quel est le plus grand océan de la planète ?", reponse: "pacifique" }, { question: "Combien de continents y a-t-il sur Terre ?", reponse: "7" }, { question: "Quelle planète est connue comme la planète rouge ?", reponse: "mars" }, { question: "Quel est l'animal le plus rapide du monde ?", reponse: "guepard" } ]; // variable pour le jeu let devinetteActuelle = 0; let score = 0; let tentatives = 0; // fonction pour rendre le jeu plus naturel const afficherAvecDelai = (message, delai = 1000) => { return new Promise(resolve => { setTimeout(() => { console.log(message); resolve(); }, delai); }); }; // démarre le jeu avec un message d'accueil const demarrerJeu = async () => { await afficherAvecDelai("Bienvenue au jeu de devinettes !"); await afficherAvecDelai("Répondez aux questions suivantes :", 500); poserDevinette(); }; //prend en paramètre la réponse et la devinette //re'utilise la fonction délai pour une interaction fluide const verifierReponse = async (reponse, devinette) => { const reponseNormalisee = reponse.trim().toLowerCase(); if (reponseNormalisee === devinette.reponse) { await afficherAvecDelai("Bonne réponse !", 300); score++; devinetteActuelle++; tentatives = 0; poserDevinette(); } else { tentatives++; let message = "Incorrecte "; if (tentatives === 1) { message += "Réessayez !"; } else if (tentatives === 3) { message += "Un dernier essai !"; } else { message += `La bonne réponse était "${devinette.reponse}".`; await afficherAvecDelai(message, 300); tentatives = 0; devinetteActuelle++; poserDevinette(); return; } await afficherAvecDelai(message, 300); poserDevinette(); } }; // fonction qui gère pose les devinette, se termine qand la taille du tableau // dépasse l'index (débute à 0) const poserDevinette = () => { if (devinettes.length > devinetteActuelle) { const devinette = devinettes[devinetteActuelle]; rl.question(`${devinette.question} `, (reponse) => { verifierReponse(reponse, devinette); }); } else { terminerJeu(); } }; // fonction pour terminer le jeu const terminerJeu = async () => { await afficherAvecDelai("\n Bien joué ! Tu as terminé les deveinettes.", 500); await afficherAvecDelai(`Voici ton score : ${score}/${devinettes.length}`, 500); rl.close(); }; // démarrer le jeu demarrerJeu();