User prompt
Regles les problèmes daffichages des questions
User prompt
je veux personnalisé le fond du jeu avec mon propre asset
User prompt
Ajoute plus de questions a chaque niveau du quizz
User prompt
Ajoute plus de questions
User prompt
ajoute plus de questions de gestion finance : sur le PGI, LE SIC, les modalités de financements, etc
User prompt
fait en sorte que le jeu reprenne au niveau 1 une fois que le joueur a finis le quizz et non pas au niveau 8
User prompt
le boutton doit etre en haut au centre u pire ajoute un boutton qui lorsque le joueur appuie dessus il peut revenir au niveau 1 et refaire le quizz depuis le début, ce boutton doit etre disponible nimporte quand
User prompt
au pire ajoute un boutton qui lorsque le joueur appuie dessus il peut revenir au niveau 1 et refaire le quizz depuis le début, ce boutton doit etre disponible nimporte quand
User prompt
fait en sorte que le joueur retourne au niveau 1 pour refaire le quizz depuis le début quand il la terminé, et mets plus de questions par niveau
User prompt
ajoute plus de questions et 20 autres niveaux de quizz avec pleins d'autres questions, fait en sorte que quand le quizz est finis le joueur retourne au tout début au niveau 1 sil veut le refaire et installe un systeme de note basé sur le nombre de bonnes réponses
User prompt
ajoute 5 autres niveaux de quizz avec pleins d'autres questions de gestion finance
User prompt
ajoute plus de questions notamment sur : - Tous les systèmes de BFR, FRNG, trésorerie nette, actif circulant, passif circulant, les formules, les enregistrements des immobilisations et comptabilité dans les journaux (avec les tableaux, les classes, au débit, crédit etc...) , - Les comptes, les différentes classes de comptabilité (comme 411 clients,512 banques etc...) - Tout le chapitre de la gestion de trésorerie - L’enregistrement des flux en partie double
User prompt
ajoute plus de questions
User prompt
ajoute plus de questions en rapport avec la gestion finance au programme en terminale stmg (BFR, FRNG, trésorerie nette, résultat comptable, inventaire des comptes etc...)
Code edit (1 edits merged)
Please save this source code
User prompt
Quiz Bac STMG : Défis Gestion & Finance
Initial prompt
Créer moi un jeu de quizz amusant avec defis et niveaux pour réviser le bac STMG gestion finance en terminal
/**** * Plugins ****/ var tween = LK.import("@upit/tween.v1"); var storage = LK.import("@upit/storage.v1", { level: 1, progress: 0, score: 0 }); /**** * Classes ****/ // Answer Button Class var AnswerButton = Container.expand(function () { var self = Container.call(this); // Default width/height for answer buttons var btnWidth = 1600; var btnHeight = 200; // Attach rectangle shape as button background var btnBg = self.attachAsset('answerBtn', { width: btnWidth, height: btnHeight, color: 0x2d8cff, shape: 'box', anchorX: 0.5, anchorY: 0.5 }); // Text label for answer var label = new Text2('', { size: 80, fill: 0xFFFFFF }); label.anchor.set(0.5, 0.5); self.addChild(label); // Set answer text self.setText = function (txt) { label.setText(txt); }; // Set button color (for feedback) self.setColor = function (color) { btnBg.color = color; }; // Reset color to default self.resetColor = function () { btnBg.color = 0x2d8cff; }; // Store answer index for event handling self.answerIndex = -1; return self; }); // Next Button Class var NextButton = Container.expand(function () { var self = Container.call(this); var btnWidth = 600; var btnHeight = 120; var btnBg = self.attachAsset('nextBtn', { width: btnWidth, height: btnHeight, color: 0x44b86b, shape: 'box', anchorX: 0.5, anchorY: 0.5 }); var label = new Text2('Suivant', { size: 70, fill: 0xFFFFFF }); label.anchor.set(0.5, 0.5); self.addChild(label); return self; }); // Progress Bar Class var ProgressBar = Container.expand(function () { var self = Container.call(this); var barWidth = 1200; var barHeight = 40; // Background var bg = self.attachAsset('progressBg', { width: barWidth, height: barHeight, color: 0xcccccc, shape: 'box', anchorX: 0, anchorY: 0.5 }); // Foreground (progress) var fg = self.attachAsset('progressFg', { width: barWidth, height: barHeight, color: 0x44b86b, shape: 'box', anchorX: 0, anchorY: 0.5 }); fg.width = 0; // Set progress (0 to 1) self.setProgress = function (p) { fg.width = barWidth * p; }; return self; }); /**** * Initialize Game ****/ /**** * Quiz Data (MVP: 2 levels, 5 questions each) ****/ var game = new LK.Game({ backgroundColor: 0xf7f7f7 }); /**** * Game Code ****/ // --- Global State --- // Quiz game: We'll use simple shapes for buttons and backgrounds, and text for questions/answers. // Buttons: Rectangles, different colors for answer options and navigation. // Question area: Rectangle background. // Progress bar: Rectangle. // No images or sounds for MVP. /**** * Quiz Data (MVP: 2 levels, 5 questions each) ****/ var quizLevels = [{ name: "Niveau 1: Bases de la gestion", questions: [ // ... (identique à l'existant, questions niveau 1) // (copie toutes les questions du niveau 1 ici, inchangées) { q: "Qu'est-ce qu'un bilan comptable ?", options: ["Un document qui présente les recettes et les dépenses d'une entreprise", "Un document qui présente le patrimoine d'une entreprise à un instant donné", "Un document qui présente uniquement les dettes d'une entreprise", "Un document qui présente la liste des clients"], answer: 1 }, { q: "Quel est le rôle principal du comptable ?", options: ["Vendre des produits", "Gérer les ressources humaines", "Enregistrer et contrôler les opérations financières", "Superviser la production"], answer: 2 }, { q: "Que signifie le sigle TVA ?", options: ["Taxe sur la Valeur Ajoutée", "Tarif de Vente Annuel", "Total des Ventes Actuelles", "Transaction de Valeur Agrégée"], answer: 0 }, { q: "Dans un bilan, où trouve-t-on les dettes ?", options: ["À l'actif", "Au passif", "Dans les produits", "Dans les charges"], answer: 1 }, { q: "Quel document présente le résultat de l'activité sur une période ?", options: ["Le bilan", "Le compte de résultat", "Le journal", "Le grand livre"], answer: 1 }, { q: "Qu'est-ce que l'inventaire des comptes ?", options: ["Un document listant les stocks physiques", "Un document listant tous les comptes de l'entreprise à une date donnée", "Un document de paie", "Un document bancaire"], answer: 1 }, { q: "Le résultat comptable est :", options: ["La différence entre produits et charges", "Le montant total des ventes", "Le montant des investissements", "La somme des dettes"], answer: 0 }, { q: "Quel est le rôle du plan comptable ?", options: ["Définir les règles de gestion des stocks", "Fournir une liste normalisée des comptes à utiliser", "Calculer la TVA", "Établir le budget prévisionnel"], answer: 1 }, { q: "Que trouve-t-on à l'actif du bilan ?", options: ["Les ressources propres de l'entreprise", "Les emplois (biens et créances) détenus par l'entreprise", "Les dettes à long terme", "Les charges d'exploitation"], answer: 1 }, { q: "À quoi sert le grand livre ?", options: ["À enregistrer toutes les opérations dans l'ordre chronologique", "À regrouper les écritures par compte", "À calculer le résultat fiscal", "À établir le bilan"], answer: 1 }, { q: "À quelle classe appartient le compte 411 Clients ?", options: ["Classe 1", "Classe 4", "Classe 6", "Classe 7"], answer: 1 }, { q: "Le compte 512 Banques appartient à :", options: ["La classe 5", "La classe 2", "La classe 6", "La classe 4"], answer: 0 }, { q: "Dans un enregistrement en partie double, un achat de matériel payé par virement bancaire s'enregistre :", options: ["Débit 606, Crédit 401", "Débit 218, Crédit 512", "Débit 512, Crédit 218", "Débit 401, Crédit 606"], answer: 1 }, { q: "Quel est le principe de la partie double ?", options: ["Toute opération est enregistrée une seule fois", "Toute opération est enregistrée au débit et au crédit pour le même montant", "On enregistre uniquement les recettes", "On enregistre uniquement les dépenses"], answer: 1 }, { q: "Le compte 606 Achats est un compte de :", options: ["Produit", "Charge", "Trésorerie", "Capitaux propres"], answer: 1 }, { q: "Dans quel journal enregistre-t-on l'achat d'une immobilisation ?", options: ["Journal de banque", "Journal des achats", "Journal des opérations diverses", "Journal des ventes"], answer: 1 }, { q: "Le passif circulant comprend :", options: ["Les dettes fournisseurs et autres dettes à court terme", "Les immobilisations", "Les capitaux propres", "Les stocks"], answer: 0 }, { q: "L'actif circulant comprend :", options: ["Les stocks, créances clients, disponibilités", "Les capitaux propres", "Les dettes financières", "Les immobilisations"], answer: 0 }, { q: "Quel est le rôle de l'inventaire physique ?", options: ["Vérifier la valeur des immobilisations", "Contrôler l'existence réelle des stocks", "Calculer la TVA", "Établir le bilan"], answer: 1 }, { q: "Dans la classe 6 du plan comptable, on trouve :", options: ["Les comptes de produits", "Les comptes de charges", "Les comptes de capitaux", "Les comptes d'immobilisations"], answer: 1 }] }, { name: "Niveau 2: Finance d'entreprise", questions: [ // ... (identique à l'existant, questions niveau 2) { q: "Qu'est-ce qu'un investissement ?", options: ["Une dépense courante", "Un achat de biens durables pour l'entreprise", "Un paiement de salaire", "Une taxe à payer"], answer: 1 }, { q: "Lequel est un mode de financement externe ?", options: ["L'autofinancement", "L'emprunt bancaire", "La réduction des coûts", "L'augmentation des ventes"], answer: 1 }, { q: "Que mesure la rentabilité ?", options: ["La capacité à rembourser les dettes", "La capacité à générer un bénéfice", "La quantité de produits vendus", "Le montant des investissements"], answer: 1 }, { q: "Qu'est-ce qu'un flux de trésorerie ?", options: ["Un document fiscal", "Un mouvement d'argent entrant ou sortant de l'entreprise", "Un type de crédit", "Un stock de marchandises"], answer: 1 }, { q: "Quel indicateur mesure la solvabilité ?", options: ["Le chiffre d'affaires", "Le ratio d'endettement", "Le résultat net", "Le taux de marge"], answer: 1 }, { q: "Que signifie BFR (Besoin en Fonds de Roulement) ?", options: ["La somme des investissements nécessaires", "La différence entre les emplois et les ressources d'exploitation", "Le montant des dettes à long terme", "Le total des produits financiers"], answer: 1 }, { q: "Comment calcule-t-on la trésorerie nette ?", options: ["Capitaux propres - immobilisations", "FRNG - BFR", "Chiffre d'affaires - charges", "Stocks + créances"], answer: 1 }, { q: "Le FRNG (Fonds de Roulement Net Global) est :", options: ["La différence entre les ressources stables et les emplois stables", "La somme des dettes à court terme", "Le total des produits d'exploitation", "Le montant des stocks"], answer: 0 }, { q: "Quel document permet d'analyser la structure financière de l'entreprise ?", options: ["Le compte de résultat", "Le bilan", "Le journal", "La balance"], answer: 1 }, { q: "Qu'est-ce qu'un inventaire intermittent ?", options: ["Un inventaire réalisé en continu", "Un inventaire réalisé à la fin de l'exercice comptable", "Un inventaire des immobilisations", "Un inventaire des créances clients"], answer: 1 }, { q: "La formule du BFR est :", options: ["Stocks + créances clients - dettes fournisseurs", "Capitaux propres - immobilisations", "Produits - charges", "Trésorerie + immobilisations"], answer: 0 }, { q: "Le compte 401 Fournisseurs appartient à :", options: ["Classe 1", "Classe 4", "Classe 5", "Classe 6"], answer: 1 }, { q: "En gestion de trésorerie, le solde bancaire créditeur signifie :", options: ["Un excédent de trésorerie", "Un découvert bancaire", "Un bénéfice", "Un investissement"], answer: 1 }, { q: "Dans un tableau de flux de trésorerie, un encaissement client est :", options: ["Un flux de financement", "Un flux d'investissement", "Un flux d'exploitation", "Un flux de trésorerie négatif"], answer: 2 }, { q: "L'enregistrement d'une vente à crédit dans les journaux comptables se fait :", options: ["Débit 411 Clients, Crédit 707 Ventes", "Débit 707 Ventes, Crédit 411 Clients", "Débit 512 Banque, Crédit 707 Ventes", "Débit 707 Ventes, Crédit 512 Banque"], answer: 0 }, { q: "La trésorerie nette positive signifie :", options: ["Le BFR est supérieur au FRNG", "Le FRNG est supérieur au BFR", "Les dettes sont supérieures aux créances", "Les charges sont supérieures aux produits"], answer: 1 }, { q: "Dans la partie double, chaque opération :", options: ["Est enregistrée uniquement au débit", "Est enregistrée uniquement au crédit", "Est enregistrée au débit et au crédit pour le même montant", "N'est pas enregistrée"], answer: 2 }, { q: "Le compte 218 Machines et outillage appartient à :", options: ["Classe 2", "Classe 4", "Classe 5", "Classe 6"], answer: 0 }, { q: "Le journal des opérations diverses sert à :", options: ["Enregistrer les opérations qui ne relèvent pas des autres journaux", "Enregistrer les ventes", "Enregistrer les achats", "Enregistrer les opérations de trésorerie"], answer: 0 }, { q: "Le passif du bilan comprend :", options: ["Les ressources de l'entreprise (capitaux propres, dettes)", "Les emplois de l'entreprise (immobilisations, stocks)", "Les charges", "Les produits"], answer: 0 }] }, // --- Ajout de 5 nouveaux niveaux --- { name: "Niveau 3: Analyse financière approfondie", questions: [{ q: "Quel ratio mesure la capacité de l'entreprise à faire face à ses dettes à court terme ?", options: ["Le ratio de liquidité générale", "Le taux de marge", "Le ratio d'endettement", "Le taux de rotation des stocks"], answer: 0 }, { q: "Le ratio d'endettement se calcule :", options: ["Dettes totales / Capitaux propres", "Stocks / Chiffre d'affaires", "Résultat net / Capitaux propres", "Charges / Produits"], answer: 0 }, { q: "Un BFR négatif signifie :", options: ["L'entreprise a besoin de financement", "L'entreprise finance son cycle d'exploitation avec ses fournisseurs", "L'entreprise est en faillite", "L'entreprise a trop de stocks"], answer: 1 }, { q: "Le délai de rotation des stocks mesure :", options: ["Le temps moyen de stockage des marchandises", "Le temps de paiement des clients", "Le temps de paiement des fournisseurs", "Le temps de production"], answer: 0 }, { q: "Le ratio de rentabilité économique est :", options: ["Résultat d'exploitation / Capitaux investis", "Chiffre d'affaires / Résultat net", "Charges / Produits", "Stocks / Capitaux propres"], answer: 0 }, { q: "Le seuil de rentabilité correspond :", options: ["Au chiffre d'affaires pour lequel le résultat est nul", "Au montant des charges fixes", "Au montant des charges variables", "Au résultat net"], answer: 0 }, { q: "Le cash-flow est :", options: ["La capacité d'autofinancement", "Le montant des stocks", "Le total des dettes", "Le chiffre d'affaires"], answer: 0 }, { q: "Le ratio de liquidité immédiate se calcule :", options: ["Disponibilités / Dettes à court terme", "Stocks / Dettes à court terme", "Créances clients / Fournisseurs", "Immobilisations / Capitaux propres"], answer: 0 }, { q: "Un FRNG négatif indique :", options: ["Un excédent de ressources stables", "Un besoin de financement à court terme", "Un excédent de trésorerie", "Un excédent de stocks"], answer: 1 }, { q: "Le taux de marge brute est :", options: ["(Chiffre d'affaires - Coût d'achat des marchandises vendues) / Chiffre d'affaires", "Résultat net / Chiffre d'affaires", "Charges / Produits", "Stocks / Chiffre d'affaires"], answer: 0 }] }, { name: "Niveau 4: Comptabilité des sociétés", questions: [{ q: "Dans une société, le capital social est :", options: ["Le montant des apports des associés", "Le chiffre d'affaires", "Le résultat net", "Le montant des dettes"], answer: 0 }, { q: "Le compte 101 Capital appartient à :", options: ["Classe 1", "Classe 4", "Classe 5", "Classe 6"], answer: 0 }, { q: "Les dividendes versés sont enregistrés :", options: ["Au débit du compte 457", "Au crédit du compte 512", "Au débit du compte 512", "Au crédit du compte 101"], answer: 0 }, { q: "Le compte 120 Résultat de l'exercice est :", options: ["Un compte de capitaux propres", "Un compte de charges", "Un compte de produits", "Un compte de dettes"], answer: 0 }, { q: "L'émission d'actions nouvelles augmente :", options: ["Le capital social", "Les dettes", "Les stocks", "Les charges"], answer: 0 }, { q: "Le compte 455 Associés – Comptes courants appartient à :", options: ["Classe 1", "Classe 4", "Classe 5", "Classe 6"], answer: 1 }, { q: "Le compte 467 Autres comptes débiteurs ou créditeurs appartient à :", options: ["Classe 4", "Classe 1", "Classe 5", "Classe 6"], answer: 0 }, { q: "Le compte 164 Emprunts auprès des établissements de crédit appartient à :", options: ["Classe 1", "Classe 2", "Classe 4", "Classe 5"], answer: 0 }, { q: "Le compte 627 Services bancaires et assimilés est :", options: ["Un compte de charges", "Un compte de produits", "Un compte de capitaux propres", "Un compte d'immobilisations"], answer: 0 }, { q: "Le compte 44566 TVA déductible sur autres biens et services appartient à :", options: ["Classe 4", "Classe 5", "Classe 6", "Classe 7"], answer: 0 }] }, { name: "Niveau 5: Gestion de trésorerie", questions: [{ q: "La gestion de trésorerie vise à :", options: ["Optimiser les flux de liquidités", "Augmenter les stocks", "Réduire le chiffre d'affaires", "Augmenter les dettes"], answer: 0 }, { q: "Le rapprochement bancaire permet :", options: ["De vérifier la concordance entre la comptabilité et le relevé bancaire", "D'augmenter la trésorerie", "De réduire les charges", "D'augmenter les produits"], answer: 0 }, { q: "Un solde bancaire débiteur signifie :", options: ["Un découvert", "Un excédent de trésorerie", "Un bénéfice", "Un investissement"], answer: 0 }, { q: "Le budget de trésorerie permet :", options: ["De prévoir les encaissements et décaissements futurs", "De calculer le résultat net", "D'augmenter le capital", "De réduire les stocks"], answer: 0 }, { q: "Un paiement par chèque est enregistré :", options: ["Au crédit du compte 512", "Au débit du compte 401", "Au crédit du compte 401", "Au débit du compte 512"], answer: 0 }, { q: "Le compte 580 Virements internes appartient à :", options: ["Classe 5", "Classe 1", "Classe 4", "Classe 6"], answer: 0 }, { q: "Le solde de trésorerie final est :", options: ["Trésorerie initiale + encaissements - décaissements", "Encaissements - décaissements", "Trésorerie initiale - encaissements", "Décaissements - encaissements"], answer: 0 }, { q: "Un effet de commerce est :", options: ["Un moyen de paiement différé", "Un stock", "Un produit", "Une charge"], answer: 0 }, { q: "Le compte 511 Chèques à encaisser appartient à :", options: ["Classe 5", "Classe 4", "Classe 6", "Classe 7"], answer: 0 }, { q: "Le compte 626 Frais postaux et de télécommunications est :", options: ["Un compte de charges", "Un compte de produits", "Un compte de capitaux propres", "Un compte d'immobilisations"], answer: 0 }] }, { name: "Niveau 6: Comptabilité analytique", questions: [{ q: "La comptabilité analytique sert à :", options: ["Analyser les coûts de revient", "Calculer la TVA", "Établir le bilan", "Gérer la trésorerie"], answer: 0 }, { q: "Le coût d'achat comprend :", options: ["Prix d'achat + frais accessoires", "Prix de vente - charges", "Stocks + créances", "Charges fixes"], answer: 0 }, { q: "Le coût de revient est :", options: ["Le coût total d'un produit ou service", "Le prix de vente", "Le résultat net", "Le chiffre d'affaires"], answer: 0 }, { q: "Les charges directes sont :", options: ["Affectées directement à un produit", "Réparties entre plusieurs produits", "Des charges fixes", "Des charges variables"], answer: 0 }, { q: "Les charges indirectes sont :", options: ["Réparties entre plusieurs produits", "Affectées directement à un produit", "Des charges variables", "Des charges fixes"], answer: 0 }, { q: "Le centre d'analyse est :", options: ["Une unité de regroupement des charges", "Un compte bancaire", "Un produit", "Un stock"], answer: 0 }, { q: "Le coût variable est :", options: ["Le coût qui varie avec le niveau d'activité", "Le coût fixe", "Le coût d'achat", "Le coût de revient"], answer: 0 }, { q: "Le seuil de rentabilité analytique est :", options: ["Le niveau d'activité pour lequel le résultat analytique est nul", "Le chiffre d'affaires", "Le coût d'achat", "Le coût de revient"], answer: 0 }, { q: "Le compte 601 Achats stockés – matières premières appartient à :", options: ["Classe 6", "Classe 7", "Classe 5", "Classe 4"], answer: 0 }, { q: "Le coût complet est :", options: ["La somme des coûts directs et indirects", "Le coût variable", "Le coût d'achat", "Le coût de revient"], answer: 0 }] }, { name: "Niveau 7: Opérations courantes et TVA", questions: [{ q: "La TVA collectée est :", options: ["La TVA facturée aux clients", "La TVA payée aux fournisseurs", "La TVA sur les immobilisations", "La TVA sur les salaires"], answer: 0 }, { q: "La TVA déductible est :", options: ["La TVA payée sur les achats", "La TVA facturée aux clients", "La TVA sur les ventes", "La TVA sur les salaires"], answer: 0 }, { q: "Le compte 44571 TVA collectée appartient à :", options: ["Classe 4", "Classe 5", "Classe 6", "Classe 7"], answer: 0 }, { q: "Le compte 44566 TVA déductible sur autres biens et services appartient à :", options: ["Classe 4", "Classe 5", "Classe 6", "Classe 7"], answer: 0 }, { q: "La déclaration de TVA CA3 est :", options: ["Une déclaration mensuelle ou trimestrielle", "Une déclaration annuelle", "Une déclaration de résultat", "Une déclaration de salaires"], answer: 0 }, { q: "La TVA à décaisser est :", options: ["TVA collectée - TVA déductible", "TVA déductible - TVA collectée", "TVA sur les immobilisations", "TVA sur les salaires"], answer: 0 }, { q: "Le compte 44551 TVA à décaisser appartient à :", options: ["Classe 4", "Classe 5", "Classe 6", "Classe 7"], answer: 0 }, { q: "Une facture d'achat s'enregistre :", options: ["Débit 6, Débit 44566, Crédit 401", "Débit 401, Crédit 6, Crédit 44566", "Débit 512, Crédit 401", "Débit 7, Crédit 44571"], answer: 0 }, { q: "Une facture de vente s'enregistre :", options: ["Débit 411, Crédit 7, Crédit 44571", "Débit 7, Crédit 411, Crédit 44571", "Débit 512, Crédit 7", "Débit 401, Crédit 7"], answer: 0 }, { q: "Le compte 411 Clients appartient à :", options: ["Classe 4", "Classe 1", "Classe 5", "Classe 6"], answer: 0 }] }]; var currentLevel = storage.level || 1; // 1-based var currentQuestion = 0; var score = storage.score || 0; var progress = storage.progress || 0; // Number of questions answered in total var selectedAnswer = -1; var locked = false; // Prevent multiple answers var answerButtons = []; var nextBtn = null; var questionText = null; var levelTitleText = null; var progressBar = null; var scoreText = null; var feedbackText = null; // --- UI Layout Constants --- var centerX = 2048 / 2; var questionY = 350; var answerStartY = 700; var answerSpacing = 260; // --- Functions --- // Save progress to storage function saveProgress() { storage.level = currentLevel; storage.progress = progress; storage.score = score; } // Load current question data function getCurrentQuestionObj() { var levelIdx = currentLevel - 1; var level = quizLevels[levelIdx]; return level.questions[currentQuestion]; } // Show question and answers function showQuestion() { locked = false; selectedAnswer = -1; // Set level title var levelObj = quizLevels[currentLevel - 1]; levelTitleText.setText(levelObj.name); // Set question text var qObj = getCurrentQuestionObj(); questionText.setText(qObj.q); // Set answer buttons for (var i = 0; i < answerButtons.length; i++) { var btn = answerButtons[i]; if (qObj.options[i]) { btn.setText(qObj.options[i]); btn.visible = true; btn.resetColor(); } else { btn.visible = false; } } // Hide feedback and next button feedbackText.visible = false; nextBtn.visible = false; // Update progress bar var totalQuestions = quizLevels[currentLevel - 1].questions.length; progressBar.setProgress(currentQuestion / totalQuestions); // Update score text scoreText.setText("Score: " + score); } // Handle answer selection function handleAnswer(idx) { if (locked) return; locked = true; selectedAnswer = idx; var qObj = getCurrentQuestionObj(); var correct = idx === qObj.answer; // Color feedback for (var i = 0; i < answerButtons.length; i++) { if (i === qObj.answer) { answerButtons[i].setColor(0x44b86b); // Green for correct } else if (i === idx) { answerButtons[i].setColor(0xd83318); // Red for wrong } else { answerButtons[i].setColor(0x2d8cff); } } // Feedback text feedbackText.visible = true; if (correct) { feedbackText.setText("Bonne réponse !"); score += 1; } else { feedbackText.setText("Mauvaise réponse !"); } progress += 1; saveProgress(); // Show next button after short delay LK.setTimeout(function () { nextBtn.visible = true; }, 600); } // Handle next question or level function handleNext() { var levelObj = quizLevels[currentLevel - 1]; if (currentQuestion < levelObj.questions.length - 1) { currentQuestion += 1; showQuestion(); } else { // Level finished if (currentLevel < quizLevels.length) { currentLevel += 1; currentQuestion = 0; saveProgress(); showLevelUp(); } else { // All levels finished: show win saveProgress(); LK.showYouWin(); } } } // Show level up message function showLevelUp() { feedbackText.setText("Niveau suivant débloqué !"); feedbackText.visible = true; nextBtn.visible = true; // Animate feedback tween(feedbackText, { y: feedbackText.y - 40 }, { duration: 400, easing: tween.easeOut, onFinish: function onFinish() { tween(feedbackText, { y: feedbackText.y + 40 }, { duration: 400, easing: tween.easeIn }); } }); } // --- UI Setup --- // Level Title levelTitleText = new Text2('', { size: 90, fill: 0x222222 }); levelTitleText.anchor.set(0.5, 0); levelTitleText.x = centerX; levelTitleText.y = 120; LK.gui.top.addChild(levelTitleText); // Question Text questionText = new Text2('', { size: 70, fill: 0x333333 }); questionText.anchor.set(0.5, 0); questionText.x = centerX; questionText.y = questionY; game.addChild(questionText); // Answer Buttons for (var i = 0; i < 4; i++) { var btn = new AnswerButton(); btn.x = centerX; btn.y = answerStartY + i * answerSpacing; btn.answerIndex = i; // Touch/click event (function (btn, idx) { btn.down = function (x, y, obj) { handleAnswer(idx); }; })(btn, i); game.addChild(btn); answerButtons.push(btn); } // Feedback Text feedbackText = new Text2('', { size: 80, fill: 0xD83318 }); feedbackText.anchor.set(0.5, 0); feedbackText.x = centerX; feedbackText.y = answerStartY + 4 * answerSpacing + 40; feedbackText.visible = false; game.addChild(feedbackText); // Next Button nextBtn = new NextButton(); nextBtn.x = centerX; nextBtn.y = answerStartY + 4 * answerSpacing + 200; nextBtn.visible = false; nextBtn.down = function (x, y, obj) { nextBtn.visible = false; feedbackText.visible = false; handleNext(); }; game.addChild(nextBtn); // Progress Bar progressBar = new ProgressBar(); progressBar.x = centerX - 600; progressBar.y = 250; game.addChild(progressBar); // Score Text (top right) scoreText = new Text2('Score: 0', { size: 70, fill: 0x222222 }); scoreText.anchor.set(1, 0); scoreText.x = 2048 - 60; scoreText.y = 120; LK.gui.topRight.addChild(scoreText); // --- Game Over Handler (if needed) --- game.onGameOver = function () { // Reset progress for new game currentLevel = 1; currentQuestion = 0; score = 0; progress = 0; saveProgress(); showQuestion(); }; // --- Start Game --- showQuestion(); // --- Optional: Reset on win --- game.onYouWin = function () { // Reset everything for replay currentLevel = 1; currentQuestion = 0; score = 0; progress = 0; saveProgress(); showQuestion(); };
===================================================================
--- original.js
+++ change.js
@@ -124,9 +124,12 @@
* Quiz Data (MVP: 2 levels, 5 questions each)
****/
var quizLevels = [{
name: "Niveau 1: Bases de la gestion",
- questions: [{
+ questions: [
+ // ... (identique à l'existant, questions niveau 1)
+ // (copie toutes les questions du niveau 1 ici, inchangées)
+ {
q: "Qu'est-ce qu'un bilan comptable ?",
options: ["Un document qui présente les recettes et les dépenses d'une entreprise", "Un document qui présente le patrimoine d'une entreprise à un instant donné", "Un document qui présente uniquement les dettes d'une entreprise", "Un document qui présente la liste des clients"],
answer: 1
}, {
@@ -144,11 +147,9 @@
}, {
q: "Quel document présente le résultat de l'activité sur une période ?",
options: ["Le bilan", "Le compte de résultat", "Le journal", "Le grand livre"],
answer: 1
- },
- // Ajout questions gestion/finance niveau 1
- {
+ }, {
q: "Qu'est-ce que l'inventaire des comptes ?",
options: ["Un document listant les stocks physiques", "Un document listant tous les comptes de l'entreprise à une date donnée", "Un document de paie", "Un document bancaire"],
answer: 1
}, {
@@ -166,11 +167,9 @@
}, {
q: "À quoi sert le grand livre ?",
options: ["À enregistrer toutes les opérations dans l'ordre chronologique", "À regrouper les écritures par compte", "À calculer le résultat fiscal", "À établir le bilan"],
answer: 1
- },
- // Nouvelles questions avancées niveau 1
- {
+ }, {
q: "À quelle classe appartient le compte 411 Clients ?",
options: ["Classe 1", "Classe 4", "Classe 6", "Classe 7"],
answer: 1
}, {
@@ -211,9 +210,11 @@
answer: 1
}]
}, {
name: "Niveau 2: Finance d'entreprise",
- questions: [{
+ questions: [
+ // ... (identique à l'existant, questions niveau 2)
+ {
q: "Qu'est-ce qu'un investissement ?",
options: ["Une dépense courante", "Un achat de biens durables pour l'entreprise", "Un paiement de salaire", "Une taxe à payer"],
answer: 1
}, {
@@ -231,11 +232,9 @@
}, {
q: "Quel indicateur mesure la solvabilité ?",
options: ["Le chiffre d'affaires", "Le ratio d'endettement", "Le résultat net", "Le taux de marge"],
answer: 1
- },
- // Ajout questions gestion/finance niveau 2
- {
+ }, {
q: "Que signifie BFR (Besoin en Fonds de Roulement) ?",
options: ["La somme des investissements nécessaires", "La différence entre les emplois et les ressources d'exploitation", "Le montant des dettes à long terme", "Le total des produits financiers"],
answer: 1
}, {
@@ -253,11 +252,9 @@
}, {
q: "Qu'est-ce qu'un inventaire intermittent ?",
options: ["Un inventaire réalisé en continu", "Un inventaire réalisé à la fin de l'exercice comptable", "Un inventaire des immobilisations", "Un inventaire des créances clients"],
answer: 1
- },
- // Nouvelles questions avancées niveau 2
- {
+ }, {
q: "La formule du BFR est :",
options: ["Stocks + créances clients - dettes fournisseurs", "Capitaux propres - immobilisations", "Produits - charges", "Trésorerie + immobilisations"],
answer: 0
}, {
@@ -296,8 +293,225 @@
q: "Le passif du bilan comprend :",
options: ["Les ressources de l'entreprise (capitaux propres, dettes)", "Les emplois de l'entreprise (immobilisations, stocks)", "Les charges", "Les produits"],
answer: 0
}]
+},
+// --- Ajout de 5 nouveaux niveaux ---
+{
+ name: "Niveau 3: Analyse financière approfondie",
+ questions: [{
+ q: "Quel ratio mesure la capacité de l'entreprise à faire face à ses dettes à court terme ?",
+ options: ["Le ratio de liquidité générale", "Le taux de marge", "Le ratio d'endettement", "Le taux de rotation des stocks"],
+ answer: 0
+ }, {
+ q: "Le ratio d'endettement se calcule :",
+ options: ["Dettes totales / Capitaux propres", "Stocks / Chiffre d'affaires", "Résultat net / Capitaux propres", "Charges / Produits"],
+ answer: 0
+ }, {
+ q: "Un BFR négatif signifie :",
+ options: ["L'entreprise a besoin de financement", "L'entreprise finance son cycle d'exploitation avec ses fournisseurs", "L'entreprise est en faillite", "L'entreprise a trop de stocks"],
+ answer: 1
+ }, {
+ q: "Le délai de rotation des stocks mesure :",
+ options: ["Le temps moyen de stockage des marchandises", "Le temps de paiement des clients", "Le temps de paiement des fournisseurs", "Le temps de production"],
+ answer: 0
+ }, {
+ q: "Le ratio de rentabilité économique est :",
+ options: ["Résultat d'exploitation / Capitaux investis", "Chiffre d'affaires / Résultat net", "Charges / Produits", "Stocks / Capitaux propres"],
+ answer: 0
+ }, {
+ q: "Le seuil de rentabilité correspond :",
+ options: ["Au chiffre d'affaires pour lequel le résultat est nul", "Au montant des charges fixes", "Au montant des charges variables", "Au résultat net"],
+ answer: 0
+ }, {
+ q: "Le cash-flow est :",
+ options: ["La capacité d'autofinancement", "Le montant des stocks", "Le total des dettes", "Le chiffre d'affaires"],
+ answer: 0
+ }, {
+ q: "Le ratio de liquidité immédiate se calcule :",
+ options: ["Disponibilités / Dettes à court terme", "Stocks / Dettes à court terme", "Créances clients / Fournisseurs", "Immobilisations / Capitaux propres"],
+ answer: 0
+ }, {
+ q: "Un FRNG négatif indique :",
+ options: ["Un excédent de ressources stables", "Un besoin de financement à court terme", "Un excédent de trésorerie", "Un excédent de stocks"],
+ answer: 1
+ }, {
+ q: "Le taux de marge brute est :",
+ options: ["(Chiffre d'affaires - Coût d'achat des marchandises vendues) / Chiffre d'affaires", "Résultat net / Chiffre d'affaires", "Charges / Produits", "Stocks / Chiffre d'affaires"],
+ answer: 0
+ }]
+}, {
+ name: "Niveau 4: Comptabilité des sociétés",
+ questions: [{
+ q: "Dans une société, le capital social est :",
+ options: ["Le montant des apports des associés", "Le chiffre d'affaires", "Le résultat net", "Le montant des dettes"],
+ answer: 0
+ }, {
+ q: "Le compte 101 Capital appartient à :",
+ options: ["Classe 1", "Classe 4", "Classe 5", "Classe 6"],
+ answer: 0
+ }, {
+ q: "Les dividendes versés sont enregistrés :",
+ options: ["Au débit du compte 457", "Au crédit du compte 512", "Au débit du compte 512", "Au crédit du compte 101"],
+ answer: 0
+ }, {
+ q: "Le compte 120 Résultat de l'exercice est :",
+ options: ["Un compte de capitaux propres", "Un compte de charges", "Un compte de produits", "Un compte de dettes"],
+ answer: 0
+ }, {
+ q: "L'émission d'actions nouvelles augmente :",
+ options: ["Le capital social", "Les dettes", "Les stocks", "Les charges"],
+ answer: 0
+ }, {
+ q: "Le compte 455 Associés – Comptes courants appartient à :",
+ options: ["Classe 1", "Classe 4", "Classe 5", "Classe 6"],
+ answer: 1
+ }, {
+ q: "Le compte 467 Autres comptes débiteurs ou créditeurs appartient à :",
+ options: ["Classe 4", "Classe 1", "Classe 5", "Classe 6"],
+ answer: 0
+ }, {
+ q: "Le compte 164 Emprunts auprès des établissements de crédit appartient à :",
+ options: ["Classe 1", "Classe 2", "Classe 4", "Classe 5"],
+ answer: 0
+ }, {
+ q: "Le compte 627 Services bancaires et assimilés est :",
+ options: ["Un compte de charges", "Un compte de produits", "Un compte de capitaux propres", "Un compte d'immobilisations"],
+ answer: 0
+ }, {
+ q: "Le compte 44566 TVA déductible sur autres biens et services appartient à :",
+ options: ["Classe 4", "Classe 5", "Classe 6", "Classe 7"],
+ answer: 0
+ }]
+}, {
+ name: "Niveau 5: Gestion de trésorerie",
+ questions: [{
+ q: "La gestion de trésorerie vise à :",
+ options: ["Optimiser les flux de liquidités", "Augmenter les stocks", "Réduire le chiffre d'affaires", "Augmenter les dettes"],
+ answer: 0
+ }, {
+ q: "Le rapprochement bancaire permet :",
+ options: ["De vérifier la concordance entre la comptabilité et le relevé bancaire", "D'augmenter la trésorerie", "De réduire les charges", "D'augmenter les produits"],
+ answer: 0
+ }, {
+ q: "Un solde bancaire débiteur signifie :",
+ options: ["Un découvert", "Un excédent de trésorerie", "Un bénéfice", "Un investissement"],
+ answer: 0
+ }, {
+ q: "Le budget de trésorerie permet :",
+ options: ["De prévoir les encaissements et décaissements futurs", "De calculer le résultat net", "D'augmenter le capital", "De réduire les stocks"],
+ answer: 0
+ }, {
+ q: "Un paiement par chèque est enregistré :",
+ options: ["Au crédit du compte 512", "Au débit du compte 401", "Au crédit du compte 401", "Au débit du compte 512"],
+ answer: 0
+ }, {
+ q: "Le compte 580 Virements internes appartient à :",
+ options: ["Classe 5", "Classe 1", "Classe 4", "Classe 6"],
+ answer: 0
+ }, {
+ q: "Le solde de trésorerie final est :",
+ options: ["Trésorerie initiale + encaissements - décaissements", "Encaissements - décaissements", "Trésorerie initiale - encaissements", "Décaissements - encaissements"],
+ answer: 0
+ }, {
+ q: "Un effet de commerce est :",
+ options: ["Un moyen de paiement différé", "Un stock", "Un produit", "Une charge"],
+ answer: 0
+ }, {
+ q: "Le compte 511 Chèques à encaisser appartient à :",
+ options: ["Classe 5", "Classe 4", "Classe 6", "Classe 7"],
+ answer: 0
+ }, {
+ q: "Le compte 626 Frais postaux et de télécommunications est :",
+ options: ["Un compte de charges", "Un compte de produits", "Un compte de capitaux propres", "Un compte d'immobilisations"],
+ answer: 0
+ }]
+}, {
+ name: "Niveau 6: Comptabilité analytique",
+ questions: [{
+ q: "La comptabilité analytique sert à :",
+ options: ["Analyser les coûts de revient", "Calculer la TVA", "Établir le bilan", "Gérer la trésorerie"],
+ answer: 0
+ }, {
+ q: "Le coût d'achat comprend :",
+ options: ["Prix d'achat + frais accessoires", "Prix de vente - charges", "Stocks + créances", "Charges fixes"],
+ answer: 0
+ }, {
+ q: "Le coût de revient est :",
+ options: ["Le coût total d'un produit ou service", "Le prix de vente", "Le résultat net", "Le chiffre d'affaires"],
+ answer: 0
+ }, {
+ q: "Les charges directes sont :",
+ options: ["Affectées directement à un produit", "Réparties entre plusieurs produits", "Des charges fixes", "Des charges variables"],
+ answer: 0
+ }, {
+ q: "Les charges indirectes sont :",
+ options: ["Réparties entre plusieurs produits", "Affectées directement à un produit", "Des charges variables", "Des charges fixes"],
+ answer: 0
+ }, {
+ q: "Le centre d'analyse est :",
+ options: ["Une unité de regroupement des charges", "Un compte bancaire", "Un produit", "Un stock"],
+ answer: 0
+ }, {
+ q: "Le coût variable est :",
+ options: ["Le coût qui varie avec le niveau d'activité", "Le coût fixe", "Le coût d'achat", "Le coût de revient"],
+ answer: 0
+ }, {
+ q: "Le seuil de rentabilité analytique est :",
+ options: ["Le niveau d'activité pour lequel le résultat analytique est nul", "Le chiffre d'affaires", "Le coût d'achat", "Le coût de revient"],
+ answer: 0
+ }, {
+ q: "Le compte 601 Achats stockés – matières premières appartient à :",
+ options: ["Classe 6", "Classe 7", "Classe 5", "Classe 4"],
+ answer: 0
+ }, {
+ q: "Le coût complet est :",
+ options: ["La somme des coûts directs et indirects", "Le coût variable", "Le coût d'achat", "Le coût de revient"],
+ answer: 0
+ }]
+}, {
+ name: "Niveau 7: Opérations courantes et TVA",
+ questions: [{
+ q: "La TVA collectée est :",
+ options: ["La TVA facturée aux clients", "La TVA payée aux fournisseurs", "La TVA sur les immobilisations", "La TVA sur les salaires"],
+ answer: 0
+ }, {
+ q: "La TVA déductible est :",
+ options: ["La TVA payée sur les achats", "La TVA facturée aux clients", "La TVA sur les ventes", "La TVA sur les salaires"],
+ answer: 0
+ }, {
+ q: "Le compte 44571 TVA collectée appartient à :",
+ options: ["Classe 4", "Classe 5", "Classe 6", "Classe 7"],
+ answer: 0
+ }, {
+ q: "Le compte 44566 TVA déductible sur autres biens et services appartient à :",
+ options: ["Classe 4", "Classe 5", "Classe 6", "Classe 7"],
+ answer: 0
+ }, {
+ q: "La déclaration de TVA CA3 est :",
+ options: ["Une déclaration mensuelle ou trimestrielle", "Une déclaration annuelle", "Une déclaration de résultat", "Une déclaration de salaires"],
+ answer: 0
+ }, {
+ q: "La TVA à décaisser est :",
+ options: ["TVA collectée - TVA déductible", "TVA déductible - TVA collectée", "TVA sur les immobilisations", "TVA sur les salaires"],
+ answer: 0
+ }, {
+ q: "Le compte 44551 TVA à décaisser appartient à :",
+ options: ["Classe 4", "Classe 5", "Classe 6", "Classe 7"],
+ answer: 0
+ }, {
+ q: "Une facture d'achat s'enregistre :",
+ options: ["Débit 6, Débit 44566, Crédit 401", "Débit 401, Crédit 6, Crédit 44566", "Débit 512, Crédit 401", "Débit 7, Crédit 44571"],
+ answer: 0
+ }, {
+ q: "Une facture de vente s'enregistre :",
+ options: ["Débit 411, Crédit 7, Crédit 44571", "Débit 7, Crédit 411, Crédit 44571", "Débit 512, Crédit 7", "Débit 401, Crédit 7"],
+ answer: 0
+ }, {
+ q: "Le compte 411 Clients appartient à :",
+ options: ["Classe 4", "Classe 1", "Classe 5", "Classe 6"],
+ answer: 0
+ }]
}];
var currentLevel = storage.level || 1; // 1-based
var currentQuestion = 0;
var score = storage.score || 0;