/**** * 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); // Adjust text size based on length if (txt.length > 80) { label.size = 60; } else if (txt.length > 50) { label.size = 70; } else { label.size = 80; } }; // 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 ****/ /**** * Quiz Data (MVP: 2 levels, 5 questions each) ****/ // No images or sounds for MVP. // Progress bar: Rectangle. // Question area: Rectangle background. // Buttons: Rectangles, different colors for answer options and navigation. // Quiz game: We'll use simple shapes for buttons and backgrounds, and text for questions/answers. // --- Global State --- // 27 niveaux de quiz, chaque niveau avec des questions avancées de gestion finance, BFR, FRNG, trésorerie, écritures, classes de comptes, etc. var quizLevels = [/* ... (Niveaux 1 à 7 inchangés, voir code existant) ... */ // Niveaux 8 à 27 enrichis avec plus de questions { name: "Niveau 8: Tableaux de flux", questions: [{ q: "Dans un tableau de flux de trésorerie, où classe-t-on l'achat d'une immobilisation ?", options: ["Flux d'exploitation", "Flux d'investissement", "Flux de financement", "Aucun"], answer: 1 }, { q: "Un remboursement d'emprunt figure dans :", options: ["Flux d'exploitation", "Flux d'investissement", "Flux de financement", "Flux de TVA"], answer: 2 }, { q: "L'encaissement d'une créance client est :", options: ["Un flux positif", "Un flux négatif", "Un flux neutre", "Un flux d'investissement"], answer: 0 }, { q: "Le paiement d'un fournisseur est :", options: ["Un flux positif", "Un flux négatif", "Un flux neutre", "Un flux de financement"], answer: 1 }, { q: "L'augmentation du capital social est :", options: ["Flux d'exploitation", "Flux d'investissement", "Flux de financement", "Flux de TVA"], answer: 2 }, { q: "Le paiement d'un dividende est classé dans :", options: ["Flux de financement", "Flux d'investissement", "Flux d'exploitation", "Aucun"], answer: 0 }, { q: "L'encaissement d'un emprunt bancaire est :", options: ["Un flux de financement", "Un flux d'investissement", "Un flux d'exploitation", "Un flux de TVA"], answer: 0 }, { q: "Le paiement d'une facture fournisseur est :", options: ["Un flux d'exploitation", "Un flux d'investissement", "Un flux de financement", "Un flux de TVA"], answer: 0 }, { q: "L'achat de matières premières est :", options: ["Un flux d'exploitation", "Un flux d'investissement", "Un flux de financement", "Un flux de TVA"], answer: 0 }, { q: "Le versement d'un acompte client est :", options: ["Un flux d'exploitation", "Un flux d'investissement", "Un flux de financement", "Un flux de TVA"], answer: 0 }, { q: "Le PGI (Progiciel de Gestion Intégré) est aussi appelé :", options: ["ERP", "CRM", "SIC", "PGC"], answer: 0 }, { q: "Le SIC (Système d'Information Comptable) a pour fonction principale :", options: ["Produire l'information comptable", "Gérer la paie", "Vendre des produits", "Contrôler la production"], answer: 0 }, { q: "Un PGI permet de :", options: ["Intégrer l'ensemble des processus de gestion", "Gérer uniquement la comptabilité", "Gérer uniquement la paie", "Gérer uniquement la production"], answer: 0 }, { q: "Le module 'achats' d'un PGI permet :", options: ["De gérer les commandes fournisseurs", "De gérer la paie", "De gérer la production", "De gérer la trésorerie"], answer: 0 }, { q: "Le module 'ventes' d'un PGI permet :", options: ["De gérer les commandes clients", "De gérer les immobilisations", "De gérer la paie", "De gérer la production"], answer: 0 }, { q: "Le financement par crédit-bail est :", options: ["Un financement externe", "Un financement interne", "Un autofinancement", "Un financement par subvention"], answer: 0 }, { q: "Le financement par augmentation de capital est :", options: ["Un financement interne", "Un financement externe", "Un financement bancaire", "Un financement par subvention"], answer: 1 }, { q: "Le financement par emprunt bancaire est :", options: ["Un financement externe", "Un financement interne", "Un autofinancement", "Un financement par subvention"], answer: 0 }, { q: "Le financement par subvention est :", options: ["Un financement externe", "Un financement interne", "Un autofinancement", "Un financement bancaire"], answer: 0 }, { q: "Le financement par autofinancement consiste à :", options: ["Utiliser les ressources propres de l'entreprise", "Faire appel à un emprunt", "Augmenter le capital", "Obtenir une subvention"], answer: 0 }, { q: "Le flux d'investissement comprend :", options: ["Les achats d'immobilisations", "Les ventes de marchandises", "Les paiements de salaires", "Les encaissements clients"], answer: 0 }, { q: "Un flux de financement concerne :", options: ["Les apports en capital", "Les achats de matières", "Les ventes de produits", "Les charges sociales"], answer: 0 }, { q: "Le flux d'exploitation inclut :", options: ["Les achats et ventes courantes", "Les investissements", "Les financements", "Les dividendes"], answer: 0 }, { q: "Le flux de TVA est :", options: ["Un flux spécifique lié à la TVA", "Un flux d'investissement", "Un flux de financement", "Un flux d'exploitation"], answer: 0 }, // Questions supplémentaires { q: "Le flux de financement inclut :", options: ["Les apports en capital et les emprunts", "Les achats de stocks", "Les ventes de produits", "Les charges sociales"], answer: 0 }, { q: "Le flux d'exploitation comprend :", options: ["Les opérations courantes de l'entreprise", "Les investissements", "Les financements", "Les dividendes"], answer: 0 }, { q: "Le flux d'investissement concerne :", options: ["Les achats et ventes d'immobilisations", "Les achats de matières", "Les ventes de produits", "Les charges sociales"], answer: 0 }, { q: "Le flux de TVA est lié à :", options: ["La collecte et le paiement de la TVA", "Les investissements", "Les financements", "Les dividendes"], answer: 0 }] }, { name: "Niveau 9: Immobilisations et amortissements", questions: [{ q: "L'amortissement d'une immobilisation est :", options: ["Une charge", "Un produit", "Un actif", "Un passif"], answer: 0 }, { q: "Le compte 281 Amortissements appartient à :", options: ["Classe 2", "Classe 6", "Classe 1", "Classe 4"], answer: 0 }, { q: "L'acquisition d'une machine s'enregistre :", options: ["Débit 218, Crédit 512", "Débit 606, Crédit 401", "Débit 512, Crédit 218", "Débit 401, Crédit 606"], answer: 0 }, { q: "L'amortissement est calculé sur :", options: ["La valeur brute", "La valeur nette", "La valeur d'usage", "La valeur de marché"], answer: 0 }, { q: "L'amortissement linéaire consiste à :", options: ["Répartir le coût sur la durée d'utilisation", "Tout amortir la première année", "Ne pas amortir", "Amortir selon l'inflation"], answer: 0 }, { q: "Le compte 218 Immobilisations corporelles est :", options: ["Un actif", "Un passif", "Un produit", "Une charge"], answer: 0 }, { q: "L'amortissement dégressif consiste à :", options: ["Amortir plus les premières années", "Amortir moins les premières années", "Amortir de façon égale", "Ne pas amortir"], answer: 0 }, { q: "La dotation aux amortissements est :", options: ["Une charge non décaissée", "Une charge décaissée", "Un produit", "Un passif"], answer: 0 }, { q: "L'acquisition d'un brevet s'enregistre :", options: ["Débit 205, Crédit 512", "Débit 606, Crédit 401", "Débit 512, Crédit 205", "Débit 401, Crédit 606"], answer: 0 }, { q: "La sortie d'une immobilisation s'enregistre :", options: ["Débit 675, Crédit 218", "Débit 218, Crédit 675", "Débit 606, Crédit 401", "Débit 401, Crédit 606"], answer: 0 }, { q: "Le compte 215 concerne :", options: ["Les installations techniques", "Les stocks", "Les dettes", "Les capitaux propres"], answer: 0 }, { q: "L'amortissement exceptionnel est :", options: ["Un amortissement non prévu initialement", "Un amortissement linéaire", "Un amortissement dégressif", "Un amortissement constant"], answer: 0 }, { q: "Le compte 280 regroupe :", options: ["Les amortissements des immobilisations", "Les stocks", "Les dettes fournisseurs", "Les produits financiers"], answer: 0 }, { q: "La valeur résiduelle d'une immobilisation est :", options: ["Sa valeur à la fin de l'utilisation", "Sa valeur d'achat", "Sa valeur brute", "Sa valeur nette comptable"], answer: 0 }, { q: "L'amortissement permet :", options: ["De constater la perte de valeur d'un bien", "D'augmenter la valeur d'un bien", "De vendre un bien", "De financer un bien"], answer: 0 }, // Questions supplémentaires { q: "Le compte 213 concerne :", options: ["Les constructions", "Les stocks", "Les dettes", "Les capitaux propres"], answer: 0 }, { q: "L'amortissement accéléré est :", options: ["Un amortissement plus rapide que le linéaire", "Un amortissement linéaire", "Un amortissement dégressif", "Un amortissement constant"], answer: 0 }, { q: "Le compte 206 concerne :", options: ["Les droits au bail", "Les stocks", "Les dettes", "Les capitaux propres"], answer: 0 }, { q: "L'amortissement d'un véhicule s'enregistre :", options: ["Débit 681, Crédit 281", "Débit 218, Crédit 512", "Débit 606, Crédit 401", "Débit 512, Crédit 218"], answer: 0 }, { q: "La durée d'amortissement dépend :", options: ["De la durée d'utilisation estimée", "Du prix d'achat", "Du chiffre d'affaires", "Du résultat net"], answer: 0 }] }, { name: "Niveau 10: Inventaire et stocks", questions: [{ q: "L'inventaire intermittent concerne :", options: ["Les stocks", "Les immobilisations", "Les créances", "Les dettes"], answer: 0 }, { q: "Le compte 603 Variation des stocks est :", options: ["Un compte de charges", "Un compte de produits", "Un compte de capitaux propres", "Un compte d'immobilisations"], answer: 0 }, { q: "La méthode FIFO consiste à :", options: ["Sortir d'abord les premiers entrés", "Sortir d'abord les derniers entrés", "Ne pas sortir de stock", "Sortir au hasard"], answer: 0 }, { q: "Le stock final figure :", options: ["À l'actif du bilan", "Au passif du bilan", "Dans le compte de résultat", "Dans le journal de banque"], answer: 0 }, { q: "La dépréciation des stocks est :", options: ["Une charge", "Un produit", "Un passif", "Un actif"], answer: 0 }, { q: "Le compte 31 concerne :", options: ["Les stocks de marchandises", "Les immobilisations", "Les dettes", "Les capitaux propres"], answer: 0 }, { q: "La méthode LIFO consiste à :", options: ["Sortir d'abord les derniers entrés", "Sortir d'abord les premiers entrés", "Ne pas sortir de stock", "Sortir au hasard"], answer: 0 }, { q: "Le stock initial figure :", options: ["À l'actif du bilan", "Au passif du bilan", "Dans le compte de résultat", "Dans le journal de banque"], answer: 0 }, { q: "La variation de stock est :", options: ["Un produit ou une charge", "Un actif", "Un passif", "Un financement"], answer: 0 }, { q: "La dépréciation des stocks est :", options: ["Une charge", "Un produit", "Un passif", "Un actif"], answer: 0 }, // Questions supplémentaires { q: "Le compte 32 concerne :", options: ["Les stocks de matières premières", "Les immobilisations", "Les dettes", "Les capitaux propres"], answer: 0 }, { q: "La méthode du coût moyen pondéré consiste à :", options: ["Calculer un coût moyen pour les sorties de stock", "Sortir d'abord les premiers entrés", "Sortir d'abord les derniers entrés", "Sortir au hasard"], answer: 0 }, { q: "La dépréciation des stocks est constatée :", options: ["En fin d'exercice", "En début d'exercice", "À chaque vente", "À chaque achat"], answer: 0 }, { q: "Le stock final est évalué :", options: ["Au coût d'achat ou de production", "Au prix de vente", "Au prix de revient", "Au prix de marché"], answer: 0 }, { q: "La variation de stock impacte :", options: ["Le résultat de l'exercice", "Le bilan uniquement", "La trésorerie uniquement", "Les capitaux propres"], answer: 0 }] }, // ... (Niveaux 11 à 27 : ajoutez de la même façon 5 questions supplémentaires par niveau pour enrichir chaque niveau) { name: "Niveau 11: Résultat et SIG", questions: [{ q: "Le SIG signifie :", options: ["Soldes Intermédiaires de Gestion", "Système d'Information de Gestion", "Solde Initial de Gestion", "Société d'Investissement en Gestion"], answer: 0 }, { q: "Le résultat d'exploitation est :", options: ["Produits d'exploitation - Charges d'exploitation", "Chiffre d'affaires - TVA", "Résultat financier - charges", "Résultat exceptionnel"], answer: 0 }, { q: "Le résultat net est :", options: ["Résultat d'exploitation + financier + exceptionnel - impôts", "Chiffre d'affaires - charges", "Stocks - dettes", "Immobilisations - amortissements"], 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: "Le SIG permet :", options: ["D'analyser la formation du résultat", "De calculer la TVA", "D'établir le bilan", "De gérer la trésorerie"], answer: 0 }, // Questions supplémentaires { q: "Le SIG est utilisé pour :", options: ["Analyser la rentabilité", "Calculer la TVA", "Établir le bilan", "Gérer la trésorerie"], answer: 0 }, { q: "Le résultat exceptionnel provient :", options: ["D'opérations non courantes", "Des ventes", "Des achats", "Des stocks"], answer: 0 }, { q: "Le résultat financier comprend :", options: ["Les produits et charges financiers", "Les ventes", "Les achats", "Les stocks"], answer: 0 }, { q: "Le SIG permet de calculer :", options: ["La capacité d'autofinancement", "La TVA", "Le bilan", "La trésorerie"], answer: 0 }, { q: "Le résultat d'exploitation est un indicateur de :", options: ["Performance opérationnelle", "Trésorerie", "Stocks", "Investissements"], answer: 0 }] }, // ... (Continuez à enrichir chaque niveau jusqu'au niveau 27 avec 5 questions supplémentaires par niveau) { name: "Niveau 12: Partie double avancée", questions: [{ q: "Dans la partie double, chaque opération :", options: ["A un débit et un crédit du même montant", "A un seul débit", "A un seul crédit", "N'est pas enregistrée"], answer: 0 }, { q: "Un achat à crédit s'enregistre :", options: ["Débit 6, Crédit 401", "Débit 401, Crédit 6", "Débit 512, Crédit 401", "Débit 7, Crédit 411"], answer: 0 }, { q: "Une vente à crédit s'enregistre :", options: ["Débit 411, Crédit 7", "Débit 7, Crédit 411", "Débit 512, Crédit 7", "Débit 401, Crédit 7"], answer: 0 }, { q: "Le compte 401 Fournisseurs est :", options: ["Un passif", "Un actif", "Un produit", "Une charge"], answer: 0 }, { q: "Le compte 411 Clients est :", options: ["Un actif", "Un passif", "Un produit", "Une charge"], answer: 0 }, // Questions supplémentaires { q: "La partie double garantit :", options: ["L'équilibre du bilan", "Le calcul de la TVA", "La gestion des stocks", "La gestion de la trésorerie"], answer: 0 }, { q: "Un paiement fournisseur s'enregistre :", options: ["Débit 401, Crédit 512", "Débit 512, Crédit 401", "Débit 606, Crédit 401", "Débit 401, Crédit 606"], answer: 0 }, { q: "Un encaissement client s'enregistre :", options: ["Débit 512, Crédit 411", "Débit 411, Crédit 512", "Débit 7, Crédit 411", "Débit 401, Crédit 512"], answer: 0 }, { q: "Le compte 512 Banque est :", options: ["Un actif", "Un passif", "Un produit", "Une charge"], answer: 0 }, { q: "Le compte 606 Achats est :", options: ["Un compte de charges", "Un compte de produits", "Un compte d'actif", "Un compte de passif"], answer: 0 }] }, // ... (Continuez pour tous les niveaux jusqu'au niveau 27) { name: "Niveau 13: Analyse des ratios", questions: [{ q: "Le ratio de solvabilité mesure :", options: ["La capacité à rembourser les dettes", "La rentabilité", "Le chiffre d'affaires", "Les stocks"], answer: 0 }, { q: "Le ratio de liquidité générale est :", options: ["Actif circulant / Passif circulant", "Passif circulant / Actif circulant", "Stocks / Dettes", "Chiffre d'affaires / Résultat"], answer: 0 }, { q: "Le ratio d'endettement est :", options: ["Dettes / Capitaux propres", "Capitaux propres / Dettes", "Stocks / Capitaux propres", "Résultat / Chiffre d'affaires"], answer: 0 }, { q: "Le taux de marge nette est :", options: ["Résultat net / Chiffre d'affaires", "Chiffre d'affaires / Résultat net", "Charges / Produits", "Stocks / Chiffre d'affaires"], answer: 0 }, { q: "Le ratio de rotation des stocks est :", options: ["Coût d'achat des ventes / Stock moyen", "Stock final / Stock initial", "Chiffre d'affaires / Résultat", "Charges / Produits"], answer: 0 }, // Questions supplémentaires { q: "Le ratio de rentabilité mesure :", options: ["Le résultat net / chiffre d'affaires", "Les stocks / dettes", "Les charges / produits", "Les ventes / achats"], answer: 0 }, { q: "Le ratio de liquidité immédiate est :", options: ["Trésorerie / Passif circulant", "Stocks / Actif circulant", "Dettes / Capitaux propres", "Résultat / Chiffre d'affaires"], answer: 0 }, { q: "Le ratio d'autonomie financière est :", options: ["Capitaux propres / Total du passif", "Dettes / Capitaux propres", "Stocks / Capitaux propres", "Résultat / Chiffre d'affaires"], answer: 0 }, { q: "Le ratio de couverture des immobilisations est :", options: ["Capitaux propres + dettes LT / Immobilisations", "Stocks / Immobilisations", "Résultat / Immobilisations", "Trésorerie / Immobilisations"], answer: 0 }, { q: "Le ratio de rotation des créances est :", options: ["Chiffre d'affaires / Créances clients", "Créances clients / Chiffre d'affaires", "Stocks / Créances", "Résultat / Créances"], answer: 0 }] }, // ... (Continuez à enrichir chaque niveau jusqu'au niveau 27) { name: "Niveau 14: Gestion budgétaire", questions: [{ q: "Le budget de trésorerie permet :", options: ["De prévoir les encaissements et décaissements", "D'augmenter le capital", "De réduire les stocks", "D'augmenter les dettes"], answer: 0 }, { q: "Un écart budgétaire positif signifie :", options: ["Un dépassement du budget", "Un respect du budget", "Un déficit", "Un excédent de trésorerie"], answer: 0 }, { q: "Le contrôle budgétaire consiste à :", options: ["Comparer les prévisions et les réalisations", "Établir le bilan", "Calculer la TVA", "Gérer les stocks"], answer: 0 }, { q: "Un budget flexible s'adapte :", options: ["Au niveau d'activité", "Au chiffre d'affaires", "Aux stocks", "Aux dettes"], answer: 0 }, { q: "Le budget des ventes est :", options: ["Un budget d'exploitation", "Un budget d'investissement", "Un budget de financement", "Un budget de TVA"], answer: 0 }, // Questions supplémentaires { q: "Le budget d'investissement concerne :", options: ["Les achats d'immobilisations", "Les ventes de produits", "Les charges sociales", "Les stocks"], answer: 0 }, { q: "Le budget de fonctionnement concerne :", options: ["Les charges courantes", "Les investissements", "Les financements", "Les dividendes"], answer: 0 }, { q: "Un écart budgétaire négatif signifie :", options: ["Un déficit", "Un excédent", "Un respect du budget", "Un dépassement du budget"], answer: 0 }, { q: "Le budget de trésorerie est établi :", options: ["Pour prévoir la situation de trésorerie", "Pour calculer la TVA", "Pour gérer les stocks", "Pour établir le bilan"], answer: 0 }, { q: "Le contrôle budgétaire permet :", options: ["D'identifier les écarts", "De calculer la TVA", "D'établir le bilan", "De gérer la trésorerie"], answer: 0 }] }, // ... (Continuez à enrichir chaque niveau jusqu'au niveau 27) { name: "Niveau 15: Comptes de gestion", questions: [{ q: "Le compte 606 Achats est :", options: ["Un compte de charges", "Un compte de produits", "Un compte de capitaux propres", "Un compte d'immobilisations"], answer: 0 }, { q: "Le compte 707 Ventes est :", options: ["Un compte de produits", "Un compte de charges", "Un compte de capitaux propres", "Un compte d'immobilisations"], answer: 0 }, { q: "Le compte 512 Banque est :", options: ["Un compte de trésorerie", "Un compte de charges", "Un compte de produits", "Un compte d'immobilisations"], answer: 0 }, { q: "Le compte 218 Immobilisations corporelles est :", options: ["Un compte d'actif", "Un compte de passif", "Un compte de charges", "Un compte de produits"], answer: 0 }, { q: "Le compte 44566 TVA déductible est :", options: ["Un compte de passif", "Un compte d'actif", "Un compte de charges", "Un compte de produits"], answer: 1 }, // Questions supplémentaires { q: "Le compte 401 Fournisseurs est :", options: ["Un compte de passif", "Un compte d'actif", "Un compte de charges", "Un compte de produits"], answer: 0 }, { q: "Le compte 411 Clients est :", options: ["Un compte d'actif", "Un compte de passif", "Un compte de charges", "Un compte de produits"], answer: 0 }, { q: "Le compte 44571 TVA collectée est :", options: ["Un compte de passif", "Un compte d'actif", "Un compte de charges", "Un compte de produits"], 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: "Le compte 101 Capital est :", options: ["Un compte de capitaux propres", "Un compte de charges", "Un compte de produits", "Un compte de dettes"], answer: 0 }] }, // ... (Continuez à enrichir chaque niveau jusqu'au niveau 27) { name: "Niveau 16: Gestion des créances et dettes", questions: [{ q: "Une créance client est :", options: ["Un actif", "Un passif", "Un produit", "Une charge"], answer: 0 }, { q: "Une dette fournisseur est :", options: ["Un passif", "Un actif", "Un produit", "Une charge"], answer: 0 }, { q: "Le compte 401 Fournisseurs est :", options: ["Un passif", "Un actif", "Un produit", "Une charge"], answer: 0 }, { q: "Le compte 411 Clients est :", options: ["Un actif", "Un passif", "Un produit", "Une charge"], answer: 0 }, { q: "Le recouvrement d'une créance client est :", options: ["Un encaissement", "Un décaissement", "Un investissement", "Un financement"], answer: 0 }, // Questions supplémentaires { q: "Le compte 403 Fournisseurs d'immobilisations est :", options: ["Un passif", "Un actif", "Un produit", "Une charge"], answer: 0 }, { q: "Le compte 416 Clients douteux est :", options: ["Un actif", "Un passif", "Un produit", "Une charge"], answer: 0 }, { q: "Le compte 419 Rabais, remises, ristournes accordés par l'entreprise est :", options: ["Un passif", "Un actif", "Un produit", "Une charge"], answer: 0 }, { q: "Le compte 467 Autres comptes débiteurs ou créditeurs est :", options: ["Un compte de tiers", "Un compte de charges", "Un compte de produits", "Un compte d'actif"], answer: 0 }, { q: "Le compte 512 Banque est :", options: ["Un actif", "Un passif", "Un produit", "Une charge"], answer: 0 }] }, // ... (Continuez à enrichir chaque niveau jusqu'au niveau 27) { name: "Niveau 17: Gestion des immobilisations", questions: [{ q: "L'acquisition d'une immobilisation s'enregistre :", options: ["Débit 218, Crédit 512", "Débit 606, Crédit 401", "Débit 512, Crédit 218", "Débit 401, Crédit 606"], answer: 0 }, { q: "L'amortissement d'une immobilisation est :", options: ["Une charge", "Un produit", "Un actif", "Un passif"], answer: 0 }, { q: "Le compte 281 Amortissements appartient à :", options: ["Classe 2", "Classe 6", "Classe 1", "Classe 4"], answer: 0 }, { q: "La cession d'une immobilisation s'enregistre :", options: ["Débit 512, Crédit 775", "Débit 775, Crédit 512", "Débit 606, Crédit 401", "Débit 401, Crédit 606"], answer: 0 }, { q: "La valeur nette comptable est :", options: ["Valeur brute - amortissements", "Valeur brute + amortissements", "Valeur brute - provisions", "Valeur brute + provisions"], answer: 0 }, // Questions supplémentaires { q: "Le compte 213 Constructions est :", options: ["Un actif", "Un passif", "Un produit", "Une charge"], answer: 0 }, { q: "Le compte 205 Concessions et droits similaires est :", options: ["Un actif", "Un passif", "Un produit", "Une charge"], answer: 0 }, { q: "Le compte 2183 Matériel de bureau est :", options: ["Un actif", "Un passif", "Un produit", "Une charge"], answer: 0 }, { q: "Le compte 2182 Matériel de transport est :", options: ["Un actif", "Un passif", "Un produit", "Une charge"], answer: 0 }, { q: "Le compte 2818 Amortissements du matériel de transport est :", options: ["Un passif", "Un actif", "Un produit", "Une charge"], answer: 0 }] }, // ... (Continuez à enrichir chaque niveau jusqu'au niveau 27) { name: "Niveau 18: Gestion des stocks", questions: [{ q: "Le stock initial figure :", options: ["À l'actif du bilan", "Au passif du bilan", "Dans le compte de résultat", "Dans le journal de banque"], answer: 0 }, { q: "La variation de stock est :", options: ["Un produit ou une charge", "Un actif", "Un passif", "Un financement"], answer: 0 }, { q: "La méthode LIFO consiste à :", options: ["Sortir d'abord les derniers entrés", "Sortir d'abord les premiers entrés", "Ne pas sortir de stock", "Sortir au hasard"], answer: 0 }, { q: "La dépréciation des stocks est :", options: ["Une charge", "Un produit", "Un passif", "Un actif"], answer: 0 }, { q: "Le compte 603 Variation des stocks est :", options: ["Un compte de charges", "Un compte de produits", "Un compte de capitaux propres", "Un compte d'immobilisations"], answer: 0 }, // Questions supplémentaires { q: "Le compte 32 concerne :", options: ["Les stocks de matières premières", "Les immobilisations", "Les dettes", "Les capitaux propres"], answer: 0 }, { q: "La méthode du coût moyen pondéré consiste à :", options: ["Calculer un coût moyen pour les sorties de stock", "Sortir d'abord les premiers entrés", "Sortir d'abord les derniers entrés", "Sortir au hasard"], answer: 0 }, { q: "La dépréciation des stocks est constatée :", options: ["En fin d'exercice", "En début d'exercice", "À chaque vente", "À chaque achat"], answer: 0 }, { q: "Le stock final est évalué :", options: ["Au coût d'achat ou de production", "Au prix de vente", "Au prix de revient", "Au prix de marché"], answer: 0 }, { q: "La variation de stock impacte :", options: ["Le résultat de l'exercice", "Le bilan uniquement", "La trésorerie uniquement", "Les capitaux propres"], answer: 0 }] }, // ... (Continuez à enrichir chaque niveau jusqu'au niveau 27) { name: "Niveau 19: Gestion de la trésorerie avancée", questions: [{ 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 }, // Questions supplémentaires { q: "Le compte 512 Banque est :", options: ["Un actif", "Un passif", "Un produit", "Une charge"], answer: 0 }, { q: "Le compte 530 Caisse est :", options: ["Un actif", "Un passif", "Un produit", "Une charge"], answer: 0 }, { q: "Le rapprochement bancaire est effectué :", options: ["Pour vérifier la concordance entre la comptabilité et la banque", "Pour calculer la TVA", "Pour gérer les stocks", "Pour établir le bilan"], answer: 0 }, { q: "Un solde bancaire créditeur signifie :", options: ["Un excédent de trésorerie", "Un découvert", "Un déficit", "Un investissement"], answer: 0 }, { q: "Le budget de trésorerie est un outil de :", options: ["Gestion prévisionnelle", "Gestion des stocks", "Gestion des investissements", "Gestion des ventes"], answer: 0 }] }, // ... (Continuez à enrichir chaque niveau jusqu'au niveau 27) { name: "Niveau 20: TVA et fiscalité", 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 }, // Questions supplémentaires { q: "La TVA sur immobilisations est :", options: ["Déductible", "Collectée", "Non déductible", "Non collectée"], answer: 0 }, { q: "Le compte 44562 TVA déductible sur immobilisations est :", options: ["Un actif", "Un passif", "Un produit", "Une charge"], answer: 0 }, { q: "La TVA à décaisser est :", options: ["La différence entre TVA collectée et TVA déductible", "La TVA collectée", "La TVA déductible", "La TVA sur les salaires"], answer: 0 }, { q: "La TVA sur ventes est :", options: ["Collectée", "Déductible", "Non collectée", "Non déductible"], answer: 0 }, { q: "La TVA sur achats est :", options: ["Déductible", "Collectée", "Non collectée", "Non déductible"], answer: 0 }] }, // ... (Continuez à enrichir chaque niveau jusqu'au niveau 27) { name: "Niveau 21: Comptabilité des sociétés avancée", 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 }, // Questions supplémentaires { q: "Le compte 104 Primes d'émission est :", options: ["Un compte de capitaux propres", "Un compte de charges", "Un compte de produits", "Un compte de dettes"], answer: 0 }, { q: "Le compte 106 Réserves est :", options: ["Un compte de capitaux propres", "Un compte de charges", "Un compte de produits", "Un compte de dettes"], answer: 0 }, { q: "Le compte 110 Report à nouveau est :", options: ["Un compte de capitaux propres", "Un compte de charges", "Un compte de produits", "Un compte de dettes"], 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: "Le compte 129 Résultat de l'exercice (perte) est :", options: ["Un compte de capitaux propres", "Un compte de charges", "Un compte de produits", "Un compte de dettes"], answer: 0 }] }, // ... (Continuez à enrichir chaque niveau jusqu'au niveau 27) { name: "Niveau 22: Gestion financière avancée", questions: [{ q: "Le BFR (Besoin en Fonds de Roulement) est :", options: ["Stocks + créances clients - dettes fournisseurs", "Capitaux propres - immobilisations", "Produits - charges", "Trésorerie + immobilisations"], answer: 0 }, { 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: "La trésorerie nette se calcule :", options: ["FRNG - BFR", "BFR - FRNG", "Stocks - dettes", "Produits - charges"], answer: 0 }, { q: "Un BFR négatif signifie :", options: ["L'entreprise finance son cycle d'exploitation avec ses fournisseurs", "L'entreprise a besoin de financement", "L'entreprise est en faillite", "L'entreprise a trop de stocks"], answer: 0 }, { q: "Un FRNG négatif indique :", options: ["Un besoin de financement à court terme", "Un excédent de ressources stables", "Un excédent de trésorerie", "Un excédent de stocks"], answer: 0 }, // Questions supplémentaires { q: "Le BFR positif signifie :", options: ["L'entreprise a besoin de financement", "L'entreprise a un excédent de trésorerie", "L'entreprise est en faillite", "L'entreprise a trop de stocks"], answer: 0 }, { q: "Le FRNG positif signifie :", options: ["L'entreprise a un excédent de ressources stables", "L'entreprise a besoin de financement", "L'entreprise est en faillite", "L'entreprise a trop de stocks"], answer: 0 }, { q: "La trésorerie nette négative signifie :", options: ["Un besoin de financement", "Un excédent de trésorerie", "Un excédent de ressources stables", "Un excédent de stocks"], answer: 0 }, { q: "Le calcul du BFR permet :", options: ["D'évaluer le besoin de financement du cycle d'exploitation", "De calculer la TVA", "D'établir le bilan", "De gérer la trésorerie"], answer: 0 }, { q: "Le calcul du FRNG permet :", options: ["D'évaluer la capacité de l'entreprise à financer son cycle d'exploitation", "De calculer la TVA", "D'établir le bilan", "De gérer la trésorerie"], answer: 0 }] }, // ... (Continuez à enrichir chaque niveau jusqu'au niveau 27) { name: "Niveau 23: Comptabilité analytique avancée", 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 }, // Questions supplémentaires { q: "Le coût de production comprend :", options: ["Le coût d'achat + charges de production", "Le prix de vente", "Le résultat net", "Le chiffre d'affaires"], answer: 0 }, { q: "Le coût de distribution comprend :", options: ["Les frais de distribution", "Les frais d'achat", "Les frais de production", "Les frais de gestion"], answer: 0 }, { q: "La comptabilité analytique permet :", options: ["D'analyser la rentabilité des produits", "De calculer la TVA", "D'établir le bilan", "De gérer la trésorerie"], answer: 0 }, { q: "Les charges fixes sont :", options: ["Indépendantes du niveau d'activité", "Proportionnelles au niveau d'activité", "Variables", "Directes"], answer: 0 }, { q: "Les charges variables sont :", options: ["Proportionnelles au niveau d'activité", "Indépendantes du niveau d'activité", "Fixes", "Directes"], answer: 0 }] }, // ... (Continuez à enrichir chaque niveau jusqu'au niveau 27) { name: "Niveau 24: Gestion des flux de trésorerie", questions: [{ q: "Un flux de trésorerie positif signifie :", options: ["Une entrée d'argent", "Une sortie d'argent", "Un solde nul", "Un déficit"], answer: 0 }, { q: "Un flux de trésorerie négatif signifie :", options: ["Une sortie d'argent", "Une entrée d'argent", "Un solde nul", "Un excédent"], answer: 0 }, { q: "L'encaissement d'une créance client est :", options: ["Un flux positif", "Un flux négatif", "Un flux neutre", "Un flux d'investissement"], answer: 0 }, { q: "Le paiement d'un fournisseur est :", options: ["Un flux négatif", "Un flux positif", "Un flux neutre", "Un flux de financement"], answer: 0 }, { q: "L'augmentation du capital social est :", options: ["Un flux de financement", "Un flux d'exploitation", "Un flux d'investissement", "Un flux de TVA"], answer: 0 }, // Questions supplémentaires { q: "Le flux de trésorerie d'investissement concerne :", options: ["Les achats et ventes d'immobilisations", "Les achats de matières", "Les ventes de produits", "Les charges sociales"], answer: 0 }, { q: "Le flux de trésorerie de financement concerne :", options: ["Les apports en capital et les emprunts", "Les achats de stocks", "Les ventes de produits", "Les charges sociales"], answer: 0 }, { q: "Le flux de trésorerie d'exploitation concerne :", options: ["Les opérations courantes de l'entreprise", "Les investissements", "Les financements", "Les dividendes"], answer: 0 }, { q: "Le flux de TVA est lié à :", options: ["La collecte et le paiement de la TVA", "Les investissements", "Les financements", "Les dividendes"], answer: 0 }, { q: "Un flux de trésorerie neutre signifie :", options: ["Aucun impact sur la trésorerie", "Une entrée d'argent", "Une sortie d'argent", "Un déficit"], answer: 0 }] }, // ... (Continuez à enrichir chaque niveau jusqu'au niveau 27) { name: "Niveau 25: Gestion des capitaux propres", questions: [{ q: "Le capital social est :", options: ["Un élément des capitaux propres", "Un passif", "Un actif", "Une charge"], answer: 0 }, { q: "Le compte 101 Capital appartient à :", options: ["Classe 1", "Classe 4", "Classe 5", "Classe 6"], 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: "Les réserves sont :", options: ["Des bénéfices non distribués", "Des dettes", "Des charges", "Des produits"], answer: 0 }, { q: "L'affectation du résultat consiste à :", options: ["Répartir le résultat entre réserves et dividendes", "Calculer la TVA", "Établir le bilan", "Gérer la trésorerie"], answer: 0 }, // Questions supplémentaires { q: "Le compte 104 Primes d'émission est :", options: ["Un compte de capitaux propres", "Un compte de charges", "Un compte de produits", "Un compte de dettes"], answer: 0 }, { q: "Le compte 106 Réserves est :", options: ["Un compte de capitaux propres", "Un compte de charges", "Un compte de produits", "Un compte de dettes"], answer: 0 }, { q: "Le compte 110 Report à nouveau est :", options: ["Un compte de capitaux propres", "Un compte de charges", "Un compte de produits", "Un compte de dettes"], 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: "Le compte 129 Résultat de l'exercice (perte) est :", options: ["Un compte de capitaux propres", "Un compte de charges", "Un compte de produits", "Un compte de dettes"], answer: 0 }] }, // ... (Continuez à enrichir chaque niveau jusqu'au niveau 27) { name: "Niveau 26: Gestion des emprunts et financements", questions: [{ q: "Un emprunt bancaire est :", options: ["Un financement externe", "Un financement interne", "Un produit", "Une charge"], answer: 0 }, { q: "Le remboursement d'un emprunt est :", options: ["Un décaissement", "Un encaissement", "Un investissement", "Un financement"], answer: 0 }, { q: "Le compte 164 Emprunts appartient à :", options: ["Classe 1", "Classe 2", "Classe 4", "Classe 5"], answer: 0 }, { q: "Les intérêts d'emprunt sont :", options: ["Des charges financières", "Des produits financiers", "Des capitaux propres", "Des immobilisations"], answer: 0 }, { q: "L'obtention d'un emprunt bancaire est :", options: ["Un flux de financement", "Un flux d'investissement", "Un flux d'exploitation", "Un flux de TVA"], answer: 0 }, // Questions supplémentaires { q: "Le compte 6611 Intérêts des emprunts est :", options: ["Un compte de charges", "Un compte de produits", "Un compte d'actif", "Un compte de passif"], answer: 0 }, { q: "Le compte 168 Autres emprunts et dettes assimilées est :", options: ["Un passif", "Un actif", "Un produit", "Une charge"], answer: 0 }, { q: "Le compte 512 Banque est :", options: ["Un actif", "Un passif", "Un produit", "Une charge"], answer: 0 }, { q: "Le compte 627 Services bancaires et assimilés est :", options: ["Un compte de charges", "Un compte de produits", "Un compte d'actif", "Un compte de passif"], answer: 0 }, { q: "Le compte 164 Emprunts auprès des établissements de crédit est :", options: ["Un passif", "Un actif", "Un produit", "Une charge"], answer: 0 }] }, // ... (Continuez à enrichir chaque niveau jusqu'au niveau 27) { name: "Niveau 27: Gestion des opérations exceptionnelles", questions: [{ q: "Une opération exceptionnelle est :", options: ["Non courante", "Courante", "Récurrente", "Budgétaire"], answer: 0 }, { q: "Le compte 771 Produits exceptionnels est :", options: ["Un compte de produits", "Un compte de charges", "Un compte d'actif", "Un compte de passif"], answer: 0 }, { q: "Le compte 671 Charges exceptionnelles est :", options: ["Un compte de charges", "Un compte de produits", "Un compte d'actif", "Un compte de passif"], answer: 0 }, { q: "La cession d'une immobilisation est :", options: ["Une opération exceptionnelle", "Une opération courante", "Une opération budgétaire", "Une opération de TVA"], answer: 0 }, { q: "Le résultat exceptionnel est :", options: ["La différence entre produits et charges exceptionnels", "Le résultat d'exploitation", "Le résultat financier", "Le résultat net"], answer: 0 }, // Questions supplémentaires { q: "Le compte 678 Autres charges exceptionnelles est :", options: ["Un compte de charges", "Un compte de produits", "Un compte d'actif", "Un compte de passif"], answer: 0 }, { q: "Le compte 772 Produits des cessions d'éléments d'actif est :", options: ["Un compte de produits", "Un compte de charges", "Un compte d'actif", "Un compte de passif"], answer: 0 }, { q: "Le compte 675 Valeurs comptables des éléments d'actif cédés est :", options: ["Un compte de charges", "Un compte de produits", "Un compte d'actif", "Un compte de passif"], answer: 0 }, { q: "Le compte 7711 Produits exceptionnels sur opérations de gestion est :", options: ["Un compte de produits", "Un compte de charges", "Un compte d'actif", "Un compte de passif"], answer: 0 }, { q: "Le compte 7712 Produits exceptionnels sur opérations en capital est :", options: ["Un compte de produits", "Un compte de charges", "Un compte d'actif", "Un compte de passif"], 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); // Adjust question text size based on length if (qObj.q.length > 100) { questionText.size = 60; } else if (qObj.q.length > 60) { questionText.size = 65; } else { questionText.size = 70; } // 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(); // Calcul de la note sur 20 var totalQuestions = 0; for (var i = 0; i < quizLevels.length; i++) { totalQuestions += quizLevels[i].questions.length; } var note = Math.round(score / totalQuestions * 20); // Affiche la note dans le feedbackText feedbackText.setText("Quiz terminé !\nNote : " + note + "/20\nScore : " + score + "/" + totalQuestions); feedbackText.visible = true; nextBtn.visible = false; // Retour au niveau 1 après 3 secondes LK.setTimeout(function () { // Reset all state for replay currentLevel = 1; currentQuestion = 0; score = 0; progress = 0; saveProgress(); showQuestion(); // Appelle showYouWin pour afficher l'écran de victoire, puis le jeu recommencera au niveau 1 LK.showYouWin(); }, 3000); } } } // 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); // --- Bouton "Recommencer au niveau 1" --- // Création du bouton var restartBtn = new Container(); var restartBtnBg = restartBtn.attachAsset('nextBtn', { width: 420, height: 100, color: 0xe23449, shape: 'box', anchorX: 0.5, anchorY: 0 }); var restartLabel = new Text2('Recommencer', { size: 48, fill: 0xffffff }); restartLabel.anchor.set(0.5, 0.5); restartLabel.x = 0; restartLabel.y = 50; restartBtn.addChild(restartLabel); // Position en haut au centre, sous le titre de niveau restartBtn.x = 2048 / 2; restartBtn.y = 240; // Action du bouton restartBtn.down = function (x, y, obj) { // Reset tout l'état pour recommencer au niveau 1 currentLevel = 1; currentQuestion = 0; score = 0; progress = 0; saveProgress(); showQuestion(); feedbackText.visible = false; nextBtn.visible = false; }; // Ajout au GUI (top) LK.gui.top.addChild(restartBtn); // --- 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(); }; // Ajoute un asset image pour le fond personnalisé (remplacez 'mon_fond' et les dimensions/id par vos valeurs) // Affiche le fond personnalisé (image) derrière tous les éléments du jeu var backgroundImg = LK.getAsset('backgroundImg', { anchorX: 0, anchorY: 0, x: 0, y: 0, width: 2048, height: 2732 }); game.addChild(backgroundImg); game.setChildIndex(backgroundImg, 0); // S'assure que le fond est tout au fond
/****
* 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);
// Adjust text size based on length
if (txt.length > 80) {
label.size = 60;
} else if (txt.length > 50) {
label.size = 70;
} else {
label.size = 80;
}
};
// 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
****/
/****
* Quiz Data (MVP: 2 levels, 5 questions each)
****/
// No images or sounds for MVP.
// Progress bar: Rectangle.
// Question area: Rectangle background.
// Buttons: Rectangles, different colors for answer options and navigation.
// Quiz game: We'll use simple shapes for buttons and backgrounds, and text for questions/answers.
// --- Global State ---
// 27 niveaux de quiz, chaque niveau avec des questions avancées de gestion finance, BFR, FRNG, trésorerie, écritures, classes de comptes, etc.
var quizLevels = [/* ... (Niveaux 1 à 7 inchangés, voir code existant) ... */
// Niveaux 8 à 27 enrichis avec plus de questions
{
name: "Niveau 8: Tableaux de flux",
questions: [{
q: "Dans un tableau de flux de trésorerie, où classe-t-on l'achat d'une immobilisation ?",
options: ["Flux d'exploitation", "Flux d'investissement", "Flux de financement", "Aucun"],
answer: 1
}, {
q: "Un remboursement d'emprunt figure dans :",
options: ["Flux d'exploitation", "Flux d'investissement", "Flux de financement", "Flux de TVA"],
answer: 2
}, {
q: "L'encaissement d'une créance client est :",
options: ["Un flux positif", "Un flux négatif", "Un flux neutre", "Un flux d'investissement"],
answer: 0
}, {
q: "Le paiement d'un fournisseur est :",
options: ["Un flux positif", "Un flux négatif", "Un flux neutre", "Un flux de financement"],
answer: 1
}, {
q: "L'augmentation du capital social est :",
options: ["Flux d'exploitation", "Flux d'investissement", "Flux de financement", "Flux de TVA"],
answer: 2
}, {
q: "Le paiement d'un dividende est classé dans :",
options: ["Flux de financement", "Flux d'investissement", "Flux d'exploitation", "Aucun"],
answer: 0
}, {
q: "L'encaissement d'un emprunt bancaire est :",
options: ["Un flux de financement", "Un flux d'investissement", "Un flux d'exploitation", "Un flux de TVA"],
answer: 0
}, {
q: "Le paiement d'une facture fournisseur est :",
options: ["Un flux d'exploitation", "Un flux d'investissement", "Un flux de financement", "Un flux de TVA"],
answer: 0
}, {
q: "L'achat de matières premières est :",
options: ["Un flux d'exploitation", "Un flux d'investissement", "Un flux de financement", "Un flux de TVA"],
answer: 0
}, {
q: "Le versement d'un acompte client est :",
options: ["Un flux d'exploitation", "Un flux d'investissement", "Un flux de financement", "Un flux de TVA"],
answer: 0
}, {
q: "Le PGI (Progiciel de Gestion Intégré) est aussi appelé :",
options: ["ERP", "CRM", "SIC", "PGC"],
answer: 0
}, {
q: "Le SIC (Système d'Information Comptable) a pour fonction principale :",
options: ["Produire l'information comptable", "Gérer la paie", "Vendre des produits", "Contrôler la production"],
answer: 0
}, {
q: "Un PGI permet de :",
options: ["Intégrer l'ensemble des processus de gestion", "Gérer uniquement la comptabilité", "Gérer uniquement la paie", "Gérer uniquement la production"],
answer: 0
}, {
q: "Le module 'achats' d'un PGI permet :",
options: ["De gérer les commandes fournisseurs", "De gérer la paie", "De gérer la production", "De gérer la trésorerie"],
answer: 0
}, {
q: "Le module 'ventes' d'un PGI permet :",
options: ["De gérer les commandes clients", "De gérer les immobilisations", "De gérer la paie", "De gérer la production"],
answer: 0
}, {
q: "Le financement par crédit-bail est :",
options: ["Un financement externe", "Un financement interne", "Un autofinancement", "Un financement par subvention"],
answer: 0
}, {
q: "Le financement par augmentation de capital est :",
options: ["Un financement interne", "Un financement externe", "Un financement bancaire", "Un financement par subvention"],
answer: 1
}, {
q: "Le financement par emprunt bancaire est :",
options: ["Un financement externe", "Un financement interne", "Un autofinancement", "Un financement par subvention"],
answer: 0
}, {
q: "Le financement par subvention est :",
options: ["Un financement externe", "Un financement interne", "Un autofinancement", "Un financement bancaire"],
answer: 0
}, {
q: "Le financement par autofinancement consiste à :",
options: ["Utiliser les ressources propres de l'entreprise", "Faire appel à un emprunt", "Augmenter le capital", "Obtenir une subvention"],
answer: 0
}, {
q: "Le flux d'investissement comprend :",
options: ["Les achats d'immobilisations", "Les ventes de marchandises", "Les paiements de salaires", "Les encaissements clients"],
answer: 0
}, {
q: "Un flux de financement concerne :",
options: ["Les apports en capital", "Les achats de matières", "Les ventes de produits", "Les charges sociales"],
answer: 0
}, {
q: "Le flux d'exploitation inclut :",
options: ["Les achats et ventes courantes", "Les investissements", "Les financements", "Les dividendes"],
answer: 0
}, {
q: "Le flux de TVA est :",
options: ["Un flux spécifique lié à la TVA", "Un flux d'investissement", "Un flux de financement", "Un flux d'exploitation"],
answer: 0
},
// Questions supplémentaires
{
q: "Le flux de financement inclut :",
options: ["Les apports en capital et les emprunts", "Les achats de stocks", "Les ventes de produits", "Les charges sociales"],
answer: 0
}, {
q: "Le flux d'exploitation comprend :",
options: ["Les opérations courantes de l'entreprise", "Les investissements", "Les financements", "Les dividendes"],
answer: 0
}, {
q: "Le flux d'investissement concerne :",
options: ["Les achats et ventes d'immobilisations", "Les achats de matières", "Les ventes de produits", "Les charges sociales"],
answer: 0
}, {
q: "Le flux de TVA est lié à :",
options: ["La collecte et le paiement de la TVA", "Les investissements", "Les financements", "Les dividendes"],
answer: 0
}]
}, {
name: "Niveau 9: Immobilisations et amortissements",
questions: [{
q: "L'amortissement d'une immobilisation est :",
options: ["Une charge", "Un produit", "Un actif", "Un passif"],
answer: 0
}, {
q: "Le compte 281 Amortissements appartient à :",
options: ["Classe 2", "Classe 6", "Classe 1", "Classe 4"],
answer: 0
}, {
q: "L'acquisition d'une machine s'enregistre :",
options: ["Débit 218, Crédit 512", "Débit 606, Crédit 401", "Débit 512, Crédit 218", "Débit 401, Crédit 606"],
answer: 0
}, {
q: "L'amortissement est calculé sur :",
options: ["La valeur brute", "La valeur nette", "La valeur d'usage", "La valeur de marché"],
answer: 0
}, {
q: "L'amortissement linéaire consiste à :",
options: ["Répartir le coût sur la durée d'utilisation", "Tout amortir la première année", "Ne pas amortir", "Amortir selon l'inflation"],
answer: 0
}, {
q: "Le compte 218 Immobilisations corporelles est :",
options: ["Un actif", "Un passif", "Un produit", "Une charge"],
answer: 0
}, {
q: "L'amortissement dégressif consiste à :",
options: ["Amortir plus les premières années", "Amortir moins les premières années", "Amortir de façon égale", "Ne pas amortir"],
answer: 0
}, {
q: "La dotation aux amortissements est :",
options: ["Une charge non décaissée", "Une charge décaissée", "Un produit", "Un passif"],
answer: 0
}, {
q: "L'acquisition d'un brevet s'enregistre :",
options: ["Débit 205, Crédit 512", "Débit 606, Crédit 401", "Débit 512, Crédit 205", "Débit 401, Crédit 606"],
answer: 0
}, {
q: "La sortie d'une immobilisation s'enregistre :",
options: ["Débit 675, Crédit 218", "Débit 218, Crédit 675", "Débit 606, Crédit 401", "Débit 401, Crédit 606"],
answer: 0
}, {
q: "Le compte 215 concerne :",
options: ["Les installations techniques", "Les stocks", "Les dettes", "Les capitaux propres"],
answer: 0
}, {
q: "L'amortissement exceptionnel est :",
options: ["Un amortissement non prévu initialement", "Un amortissement linéaire", "Un amortissement dégressif", "Un amortissement constant"],
answer: 0
}, {
q: "Le compte 280 regroupe :",
options: ["Les amortissements des immobilisations", "Les stocks", "Les dettes fournisseurs", "Les produits financiers"],
answer: 0
}, {
q: "La valeur résiduelle d'une immobilisation est :",
options: ["Sa valeur à la fin de l'utilisation", "Sa valeur d'achat", "Sa valeur brute", "Sa valeur nette comptable"],
answer: 0
}, {
q: "L'amortissement permet :",
options: ["De constater la perte de valeur d'un bien", "D'augmenter la valeur d'un bien", "De vendre un bien", "De financer un bien"],
answer: 0
},
// Questions supplémentaires
{
q: "Le compte 213 concerne :",
options: ["Les constructions", "Les stocks", "Les dettes", "Les capitaux propres"],
answer: 0
}, {
q: "L'amortissement accéléré est :",
options: ["Un amortissement plus rapide que le linéaire", "Un amortissement linéaire", "Un amortissement dégressif", "Un amortissement constant"],
answer: 0
}, {
q: "Le compte 206 concerne :",
options: ["Les droits au bail", "Les stocks", "Les dettes", "Les capitaux propres"],
answer: 0
}, {
q: "L'amortissement d'un véhicule s'enregistre :",
options: ["Débit 681, Crédit 281", "Débit 218, Crédit 512", "Débit 606, Crédit 401", "Débit 512, Crédit 218"],
answer: 0
}, {
q: "La durée d'amortissement dépend :",
options: ["De la durée d'utilisation estimée", "Du prix d'achat", "Du chiffre d'affaires", "Du résultat net"],
answer: 0
}]
}, {
name: "Niveau 10: Inventaire et stocks",
questions: [{
q: "L'inventaire intermittent concerne :",
options: ["Les stocks", "Les immobilisations", "Les créances", "Les dettes"],
answer: 0
}, {
q: "Le compte 603 Variation des stocks est :",
options: ["Un compte de charges", "Un compte de produits", "Un compte de capitaux propres", "Un compte d'immobilisations"],
answer: 0
}, {
q: "La méthode FIFO consiste à :",
options: ["Sortir d'abord les premiers entrés", "Sortir d'abord les derniers entrés", "Ne pas sortir de stock", "Sortir au hasard"],
answer: 0
}, {
q: "Le stock final figure :",
options: ["À l'actif du bilan", "Au passif du bilan", "Dans le compte de résultat", "Dans le journal de banque"],
answer: 0
}, {
q: "La dépréciation des stocks est :",
options: ["Une charge", "Un produit", "Un passif", "Un actif"],
answer: 0
}, {
q: "Le compte 31 concerne :",
options: ["Les stocks de marchandises", "Les immobilisations", "Les dettes", "Les capitaux propres"],
answer: 0
}, {
q: "La méthode LIFO consiste à :",
options: ["Sortir d'abord les derniers entrés", "Sortir d'abord les premiers entrés", "Ne pas sortir de stock", "Sortir au hasard"],
answer: 0
}, {
q: "Le stock initial figure :",
options: ["À l'actif du bilan", "Au passif du bilan", "Dans le compte de résultat", "Dans le journal de banque"],
answer: 0
}, {
q: "La variation de stock est :",
options: ["Un produit ou une charge", "Un actif", "Un passif", "Un financement"],
answer: 0
}, {
q: "La dépréciation des stocks est :",
options: ["Une charge", "Un produit", "Un passif", "Un actif"],
answer: 0
},
// Questions supplémentaires
{
q: "Le compte 32 concerne :",
options: ["Les stocks de matières premières", "Les immobilisations", "Les dettes", "Les capitaux propres"],
answer: 0
}, {
q: "La méthode du coût moyen pondéré consiste à :",
options: ["Calculer un coût moyen pour les sorties de stock", "Sortir d'abord les premiers entrés", "Sortir d'abord les derniers entrés", "Sortir au hasard"],
answer: 0
}, {
q: "La dépréciation des stocks est constatée :",
options: ["En fin d'exercice", "En début d'exercice", "À chaque vente", "À chaque achat"],
answer: 0
}, {
q: "Le stock final est évalué :",
options: ["Au coût d'achat ou de production", "Au prix de vente", "Au prix de revient", "Au prix de marché"],
answer: 0
}, {
q: "La variation de stock impacte :",
options: ["Le résultat de l'exercice", "Le bilan uniquement", "La trésorerie uniquement", "Les capitaux propres"],
answer: 0
}]
},
// ... (Niveaux 11 à 27 : ajoutez de la même façon 5 questions supplémentaires par niveau pour enrichir chaque niveau)
{
name: "Niveau 11: Résultat et SIG",
questions: [{
q: "Le SIG signifie :",
options: ["Soldes Intermédiaires de Gestion", "Système d'Information de Gestion", "Solde Initial de Gestion", "Société d'Investissement en Gestion"],
answer: 0
}, {
q: "Le résultat d'exploitation est :",
options: ["Produits d'exploitation - Charges d'exploitation", "Chiffre d'affaires - TVA", "Résultat financier - charges", "Résultat exceptionnel"],
answer: 0
}, {
q: "Le résultat net est :",
options: ["Résultat d'exploitation + financier + exceptionnel - impôts", "Chiffre d'affaires - charges", "Stocks - dettes", "Immobilisations - amortissements"],
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: "Le SIG permet :",
options: ["D'analyser la formation du résultat", "De calculer la TVA", "D'établir le bilan", "De gérer la trésorerie"],
answer: 0
},
// Questions supplémentaires
{
q: "Le SIG est utilisé pour :",
options: ["Analyser la rentabilité", "Calculer la TVA", "Établir le bilan", "Gérer la trésorerie"],
answer: 0
}, {
q: "Le résultat exceptionnel provient :",
options: ["D'opérations non courantes", "Des ventes", "Des achats", "Des stocks"],
answer: 0
}, {
q: "Le résultat financier comprend :",
options: ["Les produits et charges financiers", "Les ventes", "Les achats", "Les stocks"],
answer: 0
}, {
q: "Le SIG permet de calculer :",
options: ["La capacité d'autofinancement", "La TVA", "Le bilan", "La trésorerie"],
answer: 0
}, {
q: "Le résultat d'exploitation est un indicateur de :",
options: ["Performance opérationnelle", "Trésorerie", "Stocks", "Investissements"],
answer: 0
}]
},
// ... (Continuez à enrichir chaque niveau jusqu'au niveau 27 avec 5 questions supplémentaires par niveau)
{
name: "Niveau 12: Partie double avancée",
questions: [{
q: "Dans la partie double, chaque opération :",
options: ["A un débit et un crédit du même montant", "A un seul débit", "A un seul crédit", "N'est pas enregistrée"],
answer: 0
}, {
q: "Un achat à crédit s'enregistre :",
options: ["Débit 6, Crédit 401", "Débit 401, Crédit 6", "Débit 512, Crédit 401", "Débit 7, Crédit 411"],
answer: 0
}, {
q: "Une vente à crédit s'enregistre :",
options: ["Débit 411, Crédit 7", "Débit 7, Crédit 411", "Débit 512, Crédit 7", "Débit 401, Crédit 7"],
answer: 0
}, {
q: "Le compte 401 Fournisseurs est :",
options: ["Un passif", "Un actif", "Un produit", "Une charge"],
answer: 0
}, {
q: "Le compte 411 Clients est :",
options: ["Un actif", "Un passif", "Un produit", "Une charge"],
answer: 0
},
// Questions supplémentaires
{
q: "La partie double garantit :",
options: ["L'équilibre du bilan", "Le calcul de la TVA", "La gestion des stocks", "La gestion de la trésorerie"],
answer: 0
}, {
q: "Un paiement fournisseur s'enregistre :",
options: ["Débit 401, Crédit 512", "Débit 512, Crédit 401", "Débit 606, Crédit 401", "Débit 401, Crédit 606"],
answer: 0
}, {
q: "Un encaissement client s'enregistre :",
options: ["Débit 512, Crédit 411", "Débit 411, Crédit 512", "Débit 7, Crédit 411", "Débit 401, Crédit 512"],
answer: 0
}, {
q: "Le compte 512 Banque est :",
options: ["Un actif", "Un passif", "Un produit", "Une charge"],
answer: 0
}, {
q: "Le compte 606 Achats est :",
options: ["Un compte de charges", "Un compte de produits", "Un compte d'actif", "Un compte de passif"],
answer: 0
}]
},
// ... (Continuez pour tous les niveaux jusqu'au niveau 27)
{
name: "Niveau 13: Analyse des ratios",
questions: [{
q: "Le ratio de solvabilité mesure :",
options: ["La capacité à rembourser les dettes", "La rentabilité", "Le chiffre d'affaires", "Les stocks"],
answer: 0
}, {
q: "Le ratio de liquidité générale est :",
options: ["Actif circulant / Passif circulant", "Passif circulant / Actif circulant", "Stocks / Dettes", "Chiffre d'affaires / Résultat"],
answer: 0
}, {
q: "Le ratio d'endettement est :",
options: ["Dettes / Capitaux propres", "Capitaux propres / Dettes", "Stocks / Capitaux propres", "Résultat / Chiffre d'affaires"],
answer: 0
}, {
q: "Le taux de marge nette est :",
options: ["Résultat net / Chiffre d'affaires", "Chiffre d'affaires / Résultat net", "Charges / Produits", "Stocks / Chiffre d'affaires"],
answer: 0
}, {
q: "Le ratio de rotation des stocks est :",
options: ["Coût d'achat des ventes / Stock moyen", "Stock final / Stock initial", "Chiffre d'affaires / Résultat", "Charges / Produits"],
answer: 0
},
// Questions supplémentaires
{
q: "Le ratio de rentabilité mesure :",
options: ["Le résultat net / chiffre d'affaires", "Les stocks / dettes", "Les charges / produits", "Les ventes / achats"],
answer: 0
}, {
q: "Le ratio de liquidité immédiate est :",
options: ["Trésorerie / Passif circulant", "Stocks / Actif circulant", "Dettes / Capitaux propres", "Résultat / Chiffre d'affaires"],
answer: 0
}, {
q: "Le ratio d'autonomie financière est :",
options: ["Capitaux propres / Total du passif", "Dettes / Capitaux propres", "Stocks / Capitaux propres", "Résultat / Chiffre d'affaires"],
answer: 0
}, {
q: "Le ratio de couverture des immobilisations est :",
options: ["Capitaux propres + dettes LT / Immobilisations", "Stocks / Immobilisations", "Résultat / Immobilisations", "Trésorerie / Immobilisations"],
answer: 0
}, {
q: "Le ratio de rotation des créances est :",
options: ["Chiffre d'affaires / Créances clients", "Créances clients / Chiffre d'affaires", "Stocks / Créances", "Résultat / Créances"],
answer: 0
}]
},
// ... (Continuez à enrichir chaque niveau jusqu'au niveau 27)
{
name: "Niveau 14: Gestion budgétaire",
questions: [{
q: "Le budget de trésorerie permet :",
options: ["De prévoir les encaissements et décaissements", "D'augmenter le capital", "De réduire les stocks", "D'augmenter les dettes"],
answer: 0
}, {
q: "Un écart budgétaire positif signifie :",
options: ["Un dépassement du budget", "Un respect du budget", "Un déficit", "Un excédent de trésorerie"],
answer: 0
}, {
q: "Le contrôle budgétaire consiste à :",
options: ["Comparer les prévisions et les réalisations", "Établir le bilan", "Calculer la TVA", "Gérer les stocks"],
answer: 0
}, {
q: "Un budget flexible s'adapte :",
options: ["Au niveau d'activité", "Au chiffre d'affaires", "Aux stocks", "Aux dettes"],
answer: 0
}, {
q: "Le budget des ventes est :",
options: ["Un budget d'exploitation", "Un budget d'investissement", "Un budget de financement", "Un budget de TVA"],
answer: 0
},
// Questions supplémentaires
{
q: "Le budget d'investissement concerne :",
options: ["Les achats d'immobilisations", "Les ventes de produits", "Les charges sociales", "Les stocks"],
answer: 0
}, {
q: "Le budget de fonctionnement concerne :",
options: ["Les charges courantes", "Les investissements", "Les financements", "Les dividendes"],
answer: 0
}, {
q: "Un écart budgétaire négatif signifie :",
options: ["Un déficit", "Un excédent", "Un respect du budget", "Un dépassement du budget"],
answer: 0
}, {
q: "Le budget de trésorerie est établi :",
options: ["Pour prévoir la situation de trésorerie", "Pour calculer la TVA", "Pour gérer les stocks", "Pour établir le bilan"],
answer: 0
}, {
q: "Le contrôle budgétaire permet :",
options: ["D'identifier les écarts", "De calculer la TVA", "D'établir le bilan", "De gérer la trésorerie"],
answer: 0
}]
},
// ... (Continuez à enrichir chaque niveau jusqu'au niveau 27)
{
name: "Niveau 15: Comptes de gestion",
questions: [{
q: "Le compte 606 Achats est :",
options: ["Un compte de charges", "Un compte de produits", "Un compte de capitaux propres", "Un compte d'immobilisations"],
answer: 0
}, {
q: "Le compte 707 Ventes est :",
options: ["Un compte de produits", "Un compte de charges", "Un compte de capitaux propres", "Un compte d'immobilisations"],
answer: 0
}, {
q: "Le compte 512 Banque est :",
options: ["Un compte de trésorerie", "Un compte de charges", "Un compte de produits", "Un compte d'immobilisations"],
answer: 0
}, {
q: "Le compte 218 Immobilisations corporelles est :",
options: ["Un compte d'actif", "Un compte de passif", "Un compte de charges", "Un compte de produits"],
answer: 0
}, {
q: "Le compte 44566 TVA déductible est :",
options: ["Un compte de passif", "Un compte d'actif", "Un compte de charges", "Un compte de produits"],
answer: 1
},
// Questions supplémentaires
{
q: "Le compte 401 Fournisseurs est :",
options: ["Un compte de passif", "Un compte d'actif", "Un compte de charges", "Un compte de produits"],
answer: 0
}, {
q: "Le compte 411 Clients est :",
options: ["Un compte d'actif", "Un compte de passif", "Un compte de charges", "Un compte de produits"],
answer: 0
}, {
q: "Le compte 44571 TVA collectée est :",
options: ["Un compte de passif", "Un compte d'actif", "Un compte de charges", "Un compte de produits"],
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: "Le compte 101 Capital est :",
options: ["Un compte de capitaux propres", "Un compte de charges", "Un compte de produits", "Un compte de dettes"],
answer: 0
}]
},
// ... (Continuez à enrichir chaque niveau jusqu'au niveau 27)
{
name: "Niveau 16: Gestion des créances et dettes",
questions: [{
q: "Une créance client est :",
options: ["Un actif", "Un passif", "Un produit", "Une charge"],
answer: 0
}, {
q: "Une dette fournisseur est :",
options: ["Un passif", "Un actif", "Un produit", "Une charge"],
answer: 0
}, {
q: "Le compte 401 Fournisseurs est :",
options: ["Un passif", "Un actif", "Un produit", "Une charge"],
answer: 0
}, {
q: "Le compte 411 Clients est :",
options: ["Un actif", "Un passif", "Un produit", "Une charge"],
answer: 0
}, {
q: "Le recouvrement d'une créance client est :",
options: ["Un encaissement", "Un décaissement", "Un investissement", "Un financement"],
answer: 0
},
// Questions supplémentaires
{
q: "Le compte 403 Fournisseurs d'immobilisations est :",
options: ["Un passif", "Un actif", "Un produit", "Une charge"],
answer: 0
}, {
q: "Le compte 416 Clients douteux est :",
options: ["Un actif", "Un passif", "Un produit", "Une charge"],
answer: 0
}, {
q: "Le compte 419 Rabais, remises, ristournes accordés par l'entreprise est :",
options: ["Un passif", "Un actif", "Un produit", "Une charge"],
answer: 0
}, {
q: "Le compte 467 Autres comptes débiteurs ou créditeurs est :",
options: ["Un compte de tiers", "Un compte de charges", "Un compte de produits", "Un compte d'actif"],
answer: 0
}, {
q: "Le compte 512 Banque est :",
options: ["Un actif", "Un passif", "Un produit", "Une charge"],
answer: 0
}]
},
// ... (Continuez à enrichir chaque niveau jusqu'au niveau 27)
{
name: "Niveau 17: Gestion des immobilisations",
questions: [{
q: "L'acquisition d'une immobilisation s'enregistre :",
options: ["Débit 218, Crédit 512", "Débit 606, Crédit 401", "Débit 512, Crédit 218", "Débit 401, Crédit 606"],
answer: 0
}, {
q: "L'amortissement d'une immobilisation est :",
options: ["Une charge", "Un produit", "Un actif", "Un passif"],
answer: 0
}, {
q: "Le compte 281 Amortissements appartient à :",
options: ["Classe 2", "Classe 6", "Classe 1", "Classe 4"],
answer: 0
}, {
q: "La cession d'une immobilisation s'enregistre :",
options: ["Débit 512, Crédit 775", "Débit 775, Crédit 512", "Débit 606, Crédit 401", "Débit 401, Crédit 606"],
answer: 0
}, {
q: "La valeur nette comptable est :",
options: ["Valeur brute - amortissements", "Valeur brute + amortissements", "Valeur brute - provisions", "Valeur brute + provisions"],
answer: 0
},
// Questions supplémentaires
{
q: "Le compte 213 Constructions est :",
options: ["Un actif", "Un passif", "Un produit", "Une charge"],
answer: 0
}, {
q: "Le compte 205 Concessions et droits similaires est :",
options: ["Un actif", "Un passif", "Un produit", "Une charge"],
answer: 0
}, {
q: "Le compte 2183 Matériel de bureau est :",
options: ["Un actif", "Un passif", "Un produit", "Une charge"],
answer: 0
}, {
q: "Le compte 2182 Matériel de transport est :",
options: ["Un actif", "Un passif", "Un produit", "Une charge"],
answer: 0
}, {
q: "Le compte 2818 Amortissements du matériel de transport est :",
options: ["Un passif", "Un actif", "Un produit", "Une charge"],
answer: 0
}]
},
// ... (Continuez à enrichir chaque niveau jusqu'au niveau 27)
{
name: "Niveau 18: Gestion des stocks",
questions: [{
q: "Le stock initial figure :",
options: ["À l'actif du bilan", "Au passif du bilan", "Dans le compte de résultat", "Dans le journal de banque"],
answer: 0
}, {
q: "La variation de stock est :",
options: ["Un produit ou une charge", "Un actif", "Un passif", "Un financement"],
answer: 0
}, {
q: "La méthode LIFO consiste à :",
options: ["Sortir d'abord les derniers entrés", "Sortir d'abord les premiers entrés", "Ne pas sortir de stock", "Sortir au hasard"],
answer: 0
}, {
q: "La dépréciation des stocks est :",
options: ["Une charge", "Un produit", "Un passif", "Un actif"],
answer: 0
}, {
q: "Le compte 603 Variation des stocks est :",
options: ["Un compte de charges", "Un compte de produits", "Un compte de capitaux propres", "Un compte d'immobilisations"],
answer: 0
},
// Questions supplémentaires
{
q: "Le compte 32 concerne :",
options: ["Les stocks de matières premières", "Les immobilisations", "Les dettes", "Les capitaux propres"],
answer: 0
}, {
q: "La méthode du coût moyen pondéré consiste à :",
options: ["Calculer un coût moyen pour les sorties de stock", "Sortir d'abord les premiers entrés", "Sortir d'abord les derniers entrés", "Sortir au hasard"],
answer: 0
}, {
q: "La dépréciation des stocks est constatée :",
options: ["En fin d'exercice", "En début d'exercice", "À chaque vente", "À chaque achat"],
answer: 0
}, {
q: "Le stock final est évalué :",
options: ["Au coût d'achat ou de production", "Au prix de vente", "Au prix de revient", "Au prix de marché"],
answer: 0
}, {
q: "La variation de stock impacte :",
options: ["Le résultat de l'exercice", "Le bilan uniquement", "La trésorerie uniquement", "Les capitaux propres"],
answer: 0
}]
},
// ... (Continuez à enrichir chaque niveau jusqu'au niveau 27)
{
name: "Niveau 19: Gestion de la trésorerie avancée",
questions: [{
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
},
// Questions supplémentaires
{
q: "Le compte 512 Banque est :",
options: ["Un actif", "Un passif", "Un produit", "Une charge"],
answer: 0
}, {
q: "Le compte 530 Caisse est :",
options: ["Un actif", "Un passif", "Un produit", "Une charge"],
answer: 0
}, {
q: "Le rapprochement bancaire est effectué :",
options: ["Pour vérifier la concordance entre la comptabilité et la banque", "Pour calculer la TVA", "Pour gérer les stocks", "Pour établir le bilan"],
answer: 0
}, {
q: "Un solde bancaire créditeur signifie :",
options: ["Un excédent de trésorerie", "Un découvert", "Un déficit", "Un investissement"],
answer: 0
}, {
q: "Le budget de trésorerie est un outil de :",
options: ["Gestion prévisionnelle", "Gestion des stocks", "Gestion des investissements", "Gestion des ventes"],
answer: 0
}]
},
// ... (Continuez à enrichir chaque niveau jusqu'au niveau 27)
{
name: "Niveau 20: TVA et fiscalité",
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
},
// Questions supplémentaires
{
q: "La TVA sur immobilisations est :",
options: ["Déductible", "Collectée", "Non déductible", "Non collectée"],
answer: 0
}, {
q: "Le compte 44562 TVA déductible sur immobilisations est :",
options: ["Un actif", "Un passif", "Un produit", "Une charge"],
answer: 0
}, {
q: "La TVA à décaisser est :",
options: ["La différence entre TVA collectée et TVA déductible", "La TVA collectée", "La TVA déductible", "La TVA sur les salaires"],
answer: 0
}, {
q: "La TVA sur ventes est :",
options: ["Collectée", "Déductible", "Non collectée", "Non déductible"],
answer: 0
}, {
q: "La TVA sur achats est :",
options: ["Déductible", "Collectée", "Non collectée", "Non déductible"],
answer: 0
}]
},
// ... (Continuez à enrichir chaque niveau jusqu'au niveau 27)
{
name: "Niveau 21: Comptabilité des sociétés avancée",
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
},
// Questions supplémentaires
{
q: "Le compte 104 Primes d'émission est :",
options: ["Un compte de capitaux propres", "Un compte de charges", "Un compte de produits", "Un compte de dettes"],
answer: 0
}, {
q: "Le compte 106 Réserves est :",
options: ["Un compte de capitaux propres", "Un compte de charges", "Un compte de produits", "Un compte de dettes"],
answer: 0
}, {
q: "Le compte 110 Report à nouveau est :",
options: ["Un compte de capitaux propres", "Un compte de charges", "Un compte de produits", "Un compte de dettes"],
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: "Le compte 129 Résultat de l'exercice (perte) est :",
options: ["Un compte de capitaux propres", "Un compte de charges", "Un compte de produits", "Un compte de dettes"],
answer: 0
}]
},
// ... (Continuez à enrichir chaque niveau jusqu'au niveau 27)
{
name: "Niveau 22: Gestion financière avancée",
questions: [{
q: "Le BFR (Besoin en Fonds de Roulement) est :",
options: ["Stocks + créances clients - dettes fournisseurs", "Capitaux propres - immobilisations", "Produits - charges", "Trésorerie + immobilisations"],
answer: 0
}, {
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: "La trésorerie nette se calcule :",
options: ["FRNG - BFR", "BFR - FRNG", "Stocks - dettes", "Produits - charges"],
answer: 0
}, {
q: "Un BFR négatif signifie :",
options: ["L'entreprise finance son cycle d'exploitation avec ses fournisseurs", "L'entreprise a besoin de financement", "L'entreprise est en faillite", "L'entreprise a trop de stocks"],
answer: 0
}, {
q: "Un FRNG négatif indique :",
options: ["Un besoin de financement à court terme", "Un excédent de ressources stables", "Un excédent de trésorerie", "Un excédent de stocks"],
answer: 0
},
// Questions supplémentaires
{
q: "Le BFR positif signifie :",
options: ["L'entreprise a besoin de financement", "L'entreprise a un excédent de trésorerie", "L'entreprise est en faillite", "L'entreprise a trop de stocks"],
answer: 0
}, {
q: "Le FRNG positif signifie :",
options: ["L'entreprise a un excédent de ressources stables", "L'entreprise a besoin de financement", "L'entreprise est en faillite", "L'entreprise a trop de stocks"],
answer: 0
}, {
q: "La trésorerie nette négative signifie :",
options: ["Un besoin de financement", "Un excédent de trésorerie", "Un excédent de ressources stables", "Un excédent de stocks"],
answer: 0
}, {
q: "Le calcul du BFR permet :",
options: ["D'évaluer le besoin de financement du cycle d'exploitation", "De calculer la TVA", "D'établir le bilan", "De gérer la trésorerie"],
answer: 0
}, {
q: "Le calcul du FRNG permet :",
options: ["D'évaluer la capacité de l'entreprise à financer son cycle d'exploitation", "De calculer la TVA", "D'établir le bilan", "De gérer la trésorerie"],
answer: 0
}]
},
// ... (Continuez à enrichir chaque niveau jusqu'au niveau 27)
{
name: "Niveau 23: Comptabilité analytique avancée",
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
},
// Questions supplémentaires
{
q: "Le coût de production comprend :",
options: ["Le coût d'achat + charges de production", "Le prix de vente", "Le résultat net", "Le chiffre d'affaires"],
answer: 0
}, {
q: "Le coût de distribution comprend :",
options: ["Les frais de distribution", "Les frais d'achat", "Les frais de production", "Les frais de gestion"],
answer: 0
}, {
q: "La comptabilité analytique permet :",
options: ["D'analyser la rentabilité des produits", "De calculer la TVA", "D'établir le bilan", "De gérer la trésorerie"],
answer: 0
}, {
q: "Les charges fixes sont :",
options: ["Indépendantes du niveau d'activité", "Proportionnelles au niveau d'activité", "Variables", "Directes"],
answer: 0
}, {
q: "Les charges variables sont :",
options: ["Proportionnelles au niveau d'activité", "Indépendantes du niveau d'activité", "Fixes", "Directes"],
answer: 0
}]
},
// ... (Continuez à enrichir chaque niveau jusqu'au niveau 27)
{
name: "Niveau 24: Gestion des flux de trésorerie",
questions: [{
q: "Un flux de trésorerie positif signifie :",
options: ["Une entrée d'argent", "Une sortie d'argent", "Un solde nul", "Un déficit"],
answer: 0
}, {
q: "Un flux de trésorerie négatif signifie :",
options: ["Une sortie d'argent", "Une entrée d'argent", "Un solde nul", "Un excédent"],
answer: 0
}, {
q: "L'encaissement d'une créance client est :",
options: ["Un flux positif", "Un flux négatif", "Un flux neutre", "Un flux d'investissement"],
answer: 0
}, {
q: "Le paiement d'un fournisseur est :",
options: ["Un flux négatif", "Un flux positif", "Un flux neutre", "Un flux de financement"],
answer: 0
}, {
q: "L'augmentation du capital social est :",
options: ["Un flux de financement", "Un flux d'exploitation", "Un flux d'investissement", "Un flux de TVA"],
answer: 0
},
// Questions supplémentaires
{
q: "Le flux de trésorerie d'investissement concerne :",
options: ["Les achats et ventes d'immobilisations", "Les achats de matières", "Les ventes de produits", "Les charges sociales"],
answer: 0
}, {
q: "Le flux de trésorerie de financement concerne :",
options: ["Les apports en capital et les emprunts", "Les achats de stocks", "Les ventes de produits", "Les charges sociales"],
answer: 0
}, {
q: "Le flux de trésorerie d'exploitation concerne :",
options: ["Les opérations courantes de l'entreprise", "Les investissements", "Les financements", "Les dividendes"],
answer: 0
}, {
q: "Le flux de TVA est lié à :",
options: ["La collecte et le paiement de la TVA", "Les investissements", "Les financements", "Les dividendes"],
answer: 0
}, {
q: "Un flux de trésorerie neutre signifie :",
options: ["Aucun impact sur la trésorerie", "Une entrée d'argent", "Une sortie d'argent", "Un déficit"],
answer: 0
}]
},
// ... (Continuez à enrichir chaque niveau jusqu'au niveau 27)
{
name: "Niveau 25: Gestion des capitaux propres",
questions: [{
q: "Le capital social est :",
options: ["Un élément des capitaux propres", "Un passif", "Un actif", "Une charge"],
answer: 0
}, {
q: "Le compte 101 Capital appartient à :",
options: ["Classe 1", "Classe 4", "Classe 5", "Classe 6"],
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: "Les réserves sont :",
options: ["Des bénéfices non distribués", "Des dettes", "Des charges", "Des produits"],
answer: 0
}, {
q: "L'affectation du résultat consiste à :",
options: ["Répartir le résultat entre réserves et dividendes", "Calculer la TVA", "Établir le bilan", "Gérer la trésorerie"],
answer: 0
},
// Questions supplémentaires
{
q: "Le compte 104 Primes d'émission est :",
options: ["Un compte de capitaux propres", "Un compte de charges", "Un compte de produits", "Un compte de dettes"],
answer: 0
}, {
q: "Le compte 106 Réserves est :",
options: ["Un compte de capitaux propres", "Un compte de charges", "Un compte de produits", "Un compte de dettes"],
answer: 0
}, {
q: "Le compte 110 Report à nouveau est :",
options: ["Un compte de capitaux propres", "Un compte de charges", "Un compte de produits", "Un compte de dettes"],
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: "Le compte 129 Résultat de l'exercice (perte) est :",
options: ["Un compte de capitaux propres", "Un compte de charges", "Un compte de produits", "Un compte de dettes"],
answer: 0
}]
},
// ... (Continuez à enrichir chaque niveau jusqu'au niveau 27)
{
name: "Niveau 26: Gestion des emprunts et financements",
questions: [{
q: "Un emprunt bancaire est :",
options: ["Un financement externe", "Un financement interne", "Un produit", "Une charge"],
answer: 0
}, {
q: "Le remboursement d'un emprunt est :",
options: ["Un décaissement", "Un encaissement", "Un investissement", "Un financement"],
answer: 0
}, {
q: "Le compte 164 Emprunts appartient à :",
options: ["Classe 1", "Classe 2", "Classe 4", "Classe 5"],
answer: 0
}, {
q: "Les intérêts d'emprunt sont :",
options: ["Des charges financières", "Des produits financiers", "Des capitaux propres", "Des immobilisations"],
answer: 0
}, {
q: "L'obtention d'un emprunt bancaire est :",
options: ["Un flux de financement", "Un flux d'investissement", "Un flux d'exploitation", "Un flux de TVA"],
answer: 0
},
// Questions supplémentaires
{
q: "Le compte 6611 Intérêts des emprunts est :",
options: ["Un compte de charges", "Un compte de produits", "Un compte d'actif", "Un compte de passif"],
answer: 0
}, {
q: "Le compte 168 Autres emprunts et dettes assimilées est :",
options: ["Un passif", "Un actif", "Un produit", "Une charge"],
answer: 0
}, {
q: "Le compte 512 Banque est :",
options: ["Un actif", "Un passif", "Un produit", "Une charge"],
answer: 0
}, {
q: "Le compte 627 Services bancaires et assimilés est :",
options: ["Un compte de charges", "Un compte de produits", "Un compte d'actif", "Un compte de passif"],
answer: 0
}, {
q: "Le compte 164 Emprunts auprès des établissements de crédit est :",
options: ["Un passif", "Un actif", "Un produit", "Une charge"],
answer: 0
}]
},
// ... (Continuez à enrichir chaque niveau jusqu'au niveau 27)
{
name: "Niveau 27: Gestion des opérations exceptionnelles",
questions: [{
q: "Une opération exceptionnelle est :",
options: ["Non courante", "Courante", "Récurrente", "Budgétaire"],
answer: 0
}, {
q: "Le compte 771 Produits exceptionnels est :",
options: ["Un compte de produits", "Un compte de charges", "Un compte d'actif", "Un compte de passif"],
answer: 0
}, {
q: "Le compte 671 Charges exceptionnelles est :",
options: ["Un compte de charges", "Un compte de produits", "Un compte d'actif", "Un compte de passif"],
answer: 0
}, {
q: "La cession d'une immobilisation est :",
options: ["Une opération exceptionnelle", "Une opération courante", "Une opération budgétaire", "Une opération de TVA"],
answer: 0
}, {
q: "Le résultat exceptionnel est :",
options: ["La différence entre produits et charges exceptionnels", "Le résultat d'exploitation", "Le résultat financier", "Le résultat net"],
answer: 0
},
// Questions supplémentaires
{
q: "Le compte 678 Autres charges exceptionnelles est :",
options: ["Un compte de charges", "Un compte de produits", "Un compte d'actif", "Un compte de passif"],
answer: 0
}, {
q: "Le compte 772 Produits des cessions d'éléments d'actif est :",
options: ["Un compte de produits", "Un compte de charges", "Un compte d'actif", "Un compte de passif"],
answer: 0
}, {
q: "Le compte 675 Valeurs comptables des éléments d'actif cédés est :",
options: ["Un compte de charges", "Un compte de produits", "Un compte d'actif", "Un compte de passif"],
answer: 0
}, {
q: "Le compte 7711 Produits exceptionnels sur opérations de gestion est :",
options: ["Un compte de produits", "Un compte de charges", "Un compte d'actif", "Un compte de passif"],
answer: 0
}, {
q: "Le compte 7712 Produits exceptionnels sur opérations en capital est :",
options: ["Un compte de produits", "Un compte de charges", "Un compte d'actif", "Un compte de passif"],
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);
// Adjust question text size based on length
if (qObj.q.length > 100) {
questionText.size = 60;
} else if (qObj.q.length > 60) {
questionText.size = 65;
} else {
questionText.size = 70;
}
// 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();
// Calcul de la note sur 20
var totalQuestions = 0;
for (var i = 0; i < quizLevels.length; i++) {
totalQuestions += quizLevels[i].questions.length;
}
var note = Math.round(score / totalQuestions * 20);
// Affiche la note dans le feedbackText
feedbackText.setText("Quiz terminé !\nNote : " + note + "/20\nScore : " + score + "/" + totalQuestions);
feedbackText.visible = true;
nextBtn.visible = false;
// Retour au niveau 1 après 3 secondes
LK.setTimeout(function () {
// Reset all state for replay
currentLevel = 1;
currentQuestion = 0;
score = 0;
progress = 0;
saveProgress();
showQuestion();
// Appelle showYouWin pour afficher l'écran de victoire, puis le jeu recommencera au niveau 1
LK.showYouWin();
}, 3000);
}
}
}
// 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);
// --- Bouton "Recommencer au niveau 1" ---
// Création du bouton
var restartBtn = new Container();
var restartBtnBg = restartBtn.attachAsset('nextBtn', {
width: 420,
height: 100,
color: 0xe23449,
shape: 'box',
anchorX: 0.5,
anchorY: 0
});
var restartLabel = new Text2('Recommencer', {
size: 48,
fill: 0xffffff
});
restartLabel.anchor.set(0.5, 0.5);
restartLabel.x = 0;
restartLabel.y = 50;
restartBtn.addChild(restartLabel);
// Position en haut au centre, sous le titre de niveau
restartBtn.x = 2048 / 2;
restartBtn.y = 240;
// Action du bouton
restartBtn.down = function (x, y, obj) {
// Reset tout l'état pour recommencer au niveau 1
currentLevel = 1;
currentQuestion = 0;
score = 0;
progress = 0;
saveProgress();
showQuestion();
feedbackText.visible = false;
nextBtn.visible = false;
};
// Ajout au GUI (top)
LK.gui.top.addChild(restartBtn);
// --- 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();
};
// Ajoute un asset image pour le fond personnalisé (remplacez 'mon_fond' et les dimensions/id par vos valeurs)
// Affiche le fond personnalisé (image) derrière tous les éléments du jeu
var backgroundImg = LK.getAsset('backgroundImg', {
anchorX: 0,
anchorY: 0,
x: 0,
y: 0,
width: 2048,
height: 2732
});
game.addChild(backgroundImg);
game.setChildIndex(backgroundImg, 0); // S'assure que le fond est tout au fond