User prompt
Regles les problèmes daffichages des questions
User prompt
je veux personnalisé le fond du jeu avec mon propre asset
User prompt
Ajoute plus de questions a chaque niveau du quizz
User prompt
Ajoute plus de questions
User prompt
ajoute plus de questions de gestion finance : sur le PGI, LE SIC, les modalités de financements, etc
User prompt
fait en sorte que le jeu reprenne au niveau 1 une fois que le joueur a finis le quizz et non pas au niveau 8
User prompt
le boutton doit etre en haut au centre u pire ajoute un boutton qui lorsque le joueur appuie dessus il peut revenir au niveau 1 et refaire le quizz depuis le début, ce boutton doit etre disponible nimporte quand
User prompt
au pire ajoute un boutton qui lorsque le joueur appuie dessus il peut revenir au niveau 1 et refaire le quizz depuis le début, ce boutton doit etre disponible nimporte quand
User prompt
fait en sorte que le joueur retourne au niveau 1 pour refaire le quizz depuis le début quand il la terminé, et mets plus de questions par niveau
User prompt
ajoute plus de questions et 20 autres niveaux de quizz avec pleins d'autres questions, fait en sorte que quand le quizz est finis le joueur retourne au tout début au niveau 1 sil veut le refaire et installe un systeme de note basé sur le nombre de bonnes réponses
User prompt
ajoute 5 autres niveaux de quizz avec pleins d'autres questions de gestion finance
User prompt
ajoute plus de questions notamment sur : - Tous les systèmes de BFR, FRNG, trésorerie nette, actif circulant, passif circulant, les formules, les enregistrements des immobilisations et comptabilité dans les journaux (avec les tableaux, les classes, au débit, crédit etc...) , - Les comptes, les différentes classes de comptabilité (comme 411 clients,512 banques etc...) - Tout le chapitre de la gestion de trésorerie - L’enregistrement des flux en partie double
User prompt
ajoute plus de questions
User prompt
ajoute plus de questions en rapport avec la gestion finance au programme en terminale stmg (BFR, FRNG, trésorerie nette, résultat comptable, inventaire des comptes etc...)
Code edit (1 edits merged)
Please save this source code
User prompt
Quiz Bac STMG : Défis Gestion & Finance
Initial prompt
Créer moi un jeu de quizz amusant avec defis et niveaux pour réviser le bac STMG gestion finance en terminal
/**** * Plugins ****/ var tween = LK.import("@upit/tween.v1"); var storage = LK.import("@upit/storage.v1", { level: 1, progress: 0, score: 0 }); /**** * Classes ****/ // Answer Button Class var AnswerButton = Container.expand(function () { var self = Container.call(this); // Default width/height for answer buttons var btnWidth = 1600; var btnHeight = 200; // Attach rectangle shape as button background var btnBg = self.attachAsset('answerBtn', { width: btnWidth, height: btnHeight, color: 0x2d8cff, shape: 'box', anchorX: 0.5, anchorY: 0.5 }); // Text label for answer var label = new Text2('', { size: 80, fill: 0xFFFFFF }); label.anchor.set(0.5, 0.5); self.addChild(label); // Set answer text self.setText = function (txt) { label.setText(txt); }; // Set button color (for feedback) self.setColor = function (color) { btnBg.color = color; }; // Reset color to default self.resetColor = function () { btnBg.color = 0x2d8cff; }; // Store answer index for event handling self.answerIndex = -1; return self; }); // Next Button Class var NextButton = Container.expand(function () { var self = Container.call(this); var btnWidth = 600; var btnHeight = 120; var btnBg = self.attachAsset('nextBtn', { width: btnWidth, height: btnHeight, color: 0x44b86b, shape: 'box', anchorX: 0.5, anchorY: 0.5 }); var label = new Text2('Suivant', { size: 70, fill: 0xFFFFFF }); label.anchor.set(0.5, 0.5); self.addChild(label); return self; }); // Progress Bar Class var ProgressBar = Container.expand(function () { var self = Container.call(this); var barWidth = 1200; var barHeight = 40; // Background var bg = self.attachAsset('progressBg', { width: barWidth, height: barHeight, color: 0xcccccc, shape: 'box', anchorX: 0, anchorY: 0.5 }); // Foreground (progress) var fg = self.attachAsset('progressFg', { width: barWidth, height: barHeight, color: 0x44b86b, shape: 'box', anchorX: 0, anchorY: 0.5 }); fg.width = 0; // Set progress (0 to 1) self.setProgress = function (p) { fg.width = barWidth * p; }; return self; }); /**** * Initialize Game ****/ /**** * Quiz Data (MVP: 2 levels, 5 questions each) ****/ var game = new LK.Game({ backgroundColor: 0xf7f7f7 }); /**** * Game Code ****/ /**** * 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 (exemples, à compléter pour la version finale) { 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 }, // Ajout de questions supplémentaires { 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 }, // Questions PGI, SIC, modalités de financement, etc. { 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 }] }, { 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 }, // Ajout de questions supplémentaires { 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 }] }, { 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 }] }, { 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 }] }, { 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 }] }, { 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 }] }, { 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 }] }, { 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 }] }, { 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 }] }, { 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 }] }, { 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 }] }, { 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 }] }, { 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 }] }, { 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 }] }, { 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 }] }, { 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 }] }, { 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 }] }, { 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 }] }, { 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 }] }, { 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 }] }]; var currentLevel = storage.level || 1; // 1-based var currentQuestion = 0; var score = storage.score || 0; var progress = storage.progress || 0; // Number of questions answered in total var selectedAnswer = -1; var locked = false; // Prevent multiple answers var answerButtons = []; var nextBtn = null; var questionText = null; var levelTitleText = null; var progressBar = null; var scoreText = null; var feedbackText = null; // --- UI Layout Constants --- var centerX = 2048 / 2; var questionY = 350; var answerStartY = 700; var answerSpacing = 260; // --- Functions --- // Save progress to storage function saveProgress() { storage.level = currentLevel; storage.progress = progress; storage.score = score; } // Load current question data function getCurrentQuestionObj() { var levelIdx = currentLevel - 1; var level = quizLevels[levelIdx]; return level.questions[currentQuestion]; } // Show question and answers function showQuestion() { locked = false; selectedAnswer = -1; // Set level title var levelObj = quizLevels[currentLevel - 1]; levelTitleText.setText(levelObj.name); // Set question text var qObj = getCurrentQuestionObj(); questionText.setText(qObj.q); // Set answer buttons for (var i = 0; i < answerButtons.length; i++) { var btn = answerButtons[i]; if (qObj.options[i]) { btn.setText(qObj.options[i]); btn.visible = true; btn.resetColor(); } else { btn.visible = false; } } // Hide feedback and next button feedbackText.visible = false; nextBtn.visible = false; // Update progress bar var totalQuestions = quizLevels[currentLevel - 1].questions.length; progressBar.setProgress(currentQuestion / totalQuestions); // Update score text scoreText.setText("Score: " + score); } // Handle answer selection function handleAnswer(idx) { if (locked) return; locked = true; selectedAnswer = idx; var qObj = getCurrentQuestionObj(); var correct = idx === qObj.answer; // Color feedback for (var i = 0; i < answerButtons.length; i++) { if (i === qObj.answer) { answerButtons[i].setColor(0x44b86b); // Green for correct } else if (i === idx) { answerButtons[i].setColor(0xd83318); // Red for wrong } else { answerButtons[i].setColor(0x2d8cff); } } // Feedback text feedbackText.visible = true; if (correct) { feedbackText.setText("Bonne réponse !"); score += 1; } else { feedbackText.setText("Mauvaise réponse !"); } progress += 1; saveProgress(); // Show next button after short delay LK.setTimeout(function () { nextBtn.visible = true; }, 600); } // Handle next question or level function handleNext() { var levelObj = quizLevels[currentLevel - 1]; if (currentQuestion < levelObj.questions.length - 1) { currentQuestion += 1; showQuestion(); } else { // Level finished if (currentLevel < quizLevels.length) { currentLevel += 1; currentQuestion = 0; saveProgress(); showLevelUp(); } else { // All levels finished: show win saveProgress(); // 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(); };
===================================================================
--- original.js
+++ change.js
@@ -113,18 +113,18 @@
/****
* Game Code
****/
-// 27 niveaux de quiz, chaque niveau avec des questions avancées de gestion finance, BFR, FRNG, trésorerie, écritures, classes de comptes, etc.
-// --- Global State ---
-// Quiz game: We'll use simple shapes for buttons and backgrounds, and text for questions/answers.
-// Buttons: Rectangles, different colors for answer options and navigation.
-// Question area: Rectangle background.
-// Progress bar: Rectangle.
-// No images or sounds for MVP.
/****
* Quiz Data (MVP: 2 levels, 5 questions each)
****/
+// 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 (exemples, à compléter pour la version finale)
{
name: "Niveau 8: Tableaux de flux",
@@ -169,8 +169,50 @@
}, {
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
+ },
+ // Questions PGI, SIC, modalités de financement, etc.
+ {
+ 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
}]
}, {
name: "Niveau 9: Immobilisations et amortissements",
questions: [{