# 🎼 Memory Pictogrammes GHS - NextGN Formation **Jeu interactif d'apprentissage des 9 pictogrammes de danger (norme GHS/CLP)** --- ## 📋 Table des MatiĂšres 1. [Vue d'ensemble](#vue-densemble) 2. [Installation & Lancement](#installation--lancement) 3. [Guide Utilisateur](#guide-utilisateur) 4. [FonctionnalitĂ©s](#fonctionnalitĂ©s) 5. [Architecture Technique](#architecture-technique) 6. [Configuration AvancĂ©e](#configuration-avancĂ©e) 7. [Troubleshooting](#troubleshooting) 8. [Licence](#licence) --- ## Vue d'ensemble ### Objectif Jeu Memory interactif permettant aux stagiaires Certibiocide de mĂ©moriser et identifier les 9 pictogrammes de danger selon la norme GHS (Globally Harmonized System). ### CaractĂ©ristiques Principales - ✅ **3 niveaux de difficultĂ©** (Facile, Normal, Difficile) - ✅ **SystĂšme de scoring avancĂ©** avec bonus temps et efficacitĂ© - ✅ **Classement persistant** (LocalStorage) - ✅ **Analytics intĂ©grĂ©** pour suivre les performances - ✅ **Design gamifiĂ©** avec animations 3D et micro-interactions - ✅ **100% Responsive** (mobile, tablet, desktop) - ✅ **Charte NextGN Formation** cohĂ©rente ### Pictogrammes Couverts 1. đŸ”” **Gaz comprimĂ©** - "Je suis sous pression" 2. ⚠ **Exclamation** - "Je nuis gravement Ă  la santĂ©" 3. đŸ’„ **Explosion** - "J'explose" 4. ☠ **CrĂąne** - "Je tue" 5. đŸ”„ **Flamme** - "Je flambe" 6. đŸ”„đŸ”” **Comburant** - "Je fais flamber" 7. 🌍 **Environnement** - "Je pollue" 8. đŸ§Ș **Corrosion** - "Je ronge" 9. âš ïžđŸŒ **SantĂ©/Environnement** - "J'altĂšre la santĂ© ou la couche d'ozone" --- ## Installation & Lancement ### PrĂ©requis - Navigateur moderne (Chrome, Firefox, Safari, Edge) - Pas de dĂ©pendances externes - JavaScript activĂ© ### DĂ©ploiement Rapide **Structure RecommandĂ©e (Option 1)** ```bash # CrĂ©er l'arborescence mkdir -p formations/memory-pictogrammes/assets/{css,js,pictogrammes} mkdir -p formations/memory-pictogrammes/docs # Copier les fichiers cp memory-pictogrammes.html formations/memory-pictogrammes/ cp -r assets/css/* formations/memory-pictogrammes/assets/css/ cp -r assets/js/* formations/memory-pictogrammes/assets/js/ cp -r assets/pictogrammes/* formations/memory-pictogrammes/assets/pictogrammes/ cp README.md INTEGRATION_GUIDE.md MANIFEST.md CONFIG.js formations/memory-pictogrammes/docs/ # Ajouter le lien dans index.html de NextGN 🎼 Memory Pictogrammes # AccĂ©der via http://votre-domaine.com/formations/memory-pictogrammes/memory-pictogrammes.html ``` **Structure RĂ©sultante** ``` Racine du site (/) ├── index.html ├── formations/ │ └── memory-pictogrammes/ │ ├── memory-pictogrammes.html │ ├── assets/ │ │ ├── css/ │ │ ├── js/ │ │ └── pictogrammes/ │ └── docs/ │ ├── README.md │ ├── INTEGRATION_GUIDE.md │ ├── MANIFEST.md │ └── CONFIG.js └── ... (autres pages) ``` --- ## Guide Utilisateur ### Commencer une Partie 1. **SĂ©lectionner le niveau** : Facile (4 paires), Normal (9 paires) ou Difficile (2 min) 2. **Cliquer sur une carte** pour la retourner 3. **Trouver les paires** en associant pictogramme ↔ signification 4. **Augmenter le score** : Plus rapide = plus de bonus temps ### SystĂšme de Scoring ``` Score Final = Score de Base + Bonus Temps + Bonus EfficacitĂ© Score de Base : - Facile : 1,000 points - Normal : 2,000 points - Difficile : 4,000 points Bonus Temps : Points restants / Temps limite × 500 Bonus EfficacitĂ© : PĂ©nalitĂ© pour erreurs × 500 ``` ### Achievements DĂ©bloquables - 🏅 **Jeu Parfait** : Aucune erreur - ⚡ **Vitesse Éclair** : < 50% du temps limite - đŸ”„ **Mode Difficile** : DĂ©fi chronomĂ©trĂ© rĂ©ussi - 🎯 **Score Parfait** : Score quasi-maximal - 🏃 **TrĂšs Rapide** : < 1 minute (9 paires) ### Classement Le classement affiche : - **Top 10 global** avec tous les niveaux - **Filtrage par difficultĂ©** (Facile, Normal, Difficile) - **MĂ©dailles** (đŸ„‡đŸ„ˆđŸ„‰) pour top 3 - **Statistiques personnelles** : meilleur score, temps record, taux de rĂ©ussite --- ## FonctionnalitĂ©s ### Jeu Principal #### Modes de DifficultĂ© | Mode | Paires | Temps Limite | Multiplicateur Score | |------|--------|-------------|----------------------| | Facile | 4 | 3 min | 1x | | Normal | 9 | 5 min | 2x | | Difficile | 9 | 2 min | 4x | #### Interactions - **Flip 3D** : Animation rotation fluide au retournement - **Match Animation** : Effet pop + glow au matching - **Error Shake** : Secousse si paire incorrecte - **Progress Bar** : Barre pulse au progress ### HUD (Heads-Up Display) - ⏱ **Timer** : Temps Ă©coulĂ© en temps rĂ©el - 🎯 **Score** : Points actuels avec animation - 📊 **Mouvements** : Nombre de tentatives - 📈 **Progression** : Paires trouvĂ©es/Total ### Classement & Stats #### Leaderboard - Top 10 global - Filtrage par difficultĂ© - Tri par score (puis par temps en cas d'Ă©galitĂ©) - Affichage du temps et mouvements #### Statistiques Personnelles - 🎼 Jeux jouĂ©s - ⭐ Meilleur score - ⚡ Temps record - 🏅 Taux de rĂ©ussite (jeux parfaits) ### Analytics Suivi des Ă©vĂ©nements : - `game_started` : DĂ©marrage du jeu - `card_flipped` : Retournement de carte - `pair_matched` : Paire trouvĂ©e - `pair_mismatched` : Erreur - `game_completed` : Fin de partie **DonnĂ©es collectĂ©es :** - ID session unique - ID joueur (anonyme ou nommĂ©) - Temps de jeu - Score final - Achievements dĂ©bloquĂ©s --- ## Architecture Technique ### Structure des Fichiers ``` memory-pictogrammes/ ├── memory-pictogrammes.html # Page principale ├── assets/ │ ├── css/ │ │ ├── memory-game.css # Styles grille + cartes │ │ ├── hud.css # HUD + Modal victoire │ │ ├── animations.css # Animations avancĂ©es │ │ └── leaderboard.css # Classement │ ├── js/ │ │ ├── memory-game.js # Moteur du jeu │ │ ├── game-state.js # Gestion Ă©tat + scoring │ │ ├── analytics.js # Tracking Ă©vĂ©nements │ │ ├── leaderboard.js # Classement + stats │ │ └── utils.js # Configuration + helpers │ └── pictogrammes/ │ ├── 1-gaz-comprime.png │ ├── 2-exclamation.png │ ├── 3-explosion.png │ ├── 4-crane.png │ ├── 5-flamme.png │ ├── 6-comburant.png │ ├── 7-environnement.png │ ├── 8-corrosion.png │ └── 9-sante-environnement.png └── README.md ``` ### Stack Technologique - **HTML5** : Structure sĂ©mantique - **CSS3** : Grid layout, animations, responsive design - **JavaScript (Vanilla)** : Aucune dĂ©pendance externe - **LocalStorage** : Persistance des scores ### Classes Principales #### `MemoryGameEngine` Moteur principal du jeu ```javascript game = new MemoryGameEngine('normal'); game.flipCard(index); game.checkMatch(); game.endGame(won); ``` #### `ScoringEngine` Calcul avancĂ© du scoring ```javascript const score = scoringEngine.calculateFinalScore(moves, time, pairs, difficulty); const achievements = scoringEngine.detectAchievements(...); ``` #### `LeaderboardManager` Gestion du classement ```javascript LeaderboardManager.addScore(gameData); LeaderboardManager.getLeaderboard(difficulty, limit); LeaderboardManager.getPlayerStats(userId); ``` #### `AnalyticsManager` Tracking des Ă©vĂ©nements ```javascript analytics.track('event_name', { data }); analytics.downloadData(); ``` --- ## Configuration AvancĂ©e ### Activer Analytics Server Si vous avez un backend pour collecter les analytics : ```html ``` ### Personnaliser les Pictogrammes Modifier `assets/js/utils.js` : ```javascript const PICTOGRAMMES = [ { id: 1, nom: "Nouveau nom", filename: "chemin/vers/image.png", texte: "Nouvelle signification", danger: "Type de danger" }, // ... ]; ``` ### Ajouter des Niveaux de DifficultĂ© ```javascript const DIFFICULTY_MODES = { custom: { name: "Mon Niveau", paires: 6, timeLimit: 240, scoreMultiplier: 1.5, description: "Description" } }; ``` ### IntĂ©gration avec un CMS Pour ajouter le jeu Ă  un CMS (WordPress, Drupal, etc.) : ```html ``` --- ## Troubleshooting ### Le jeu ne se charge pas **Cause** : Chemin des ressources incorrect **Solution** : ```bash # VĂ©rifier que les fichiers CSS et JS sont aux bons chemins # Ouvrir la console du navigateur (F12) # VĂ©rifier les erreurs 404 pour les ressources manquantes ``` ### Les pictogrammes ne s'affichent pas **Cause** : Images non trouvĂ©es **Solution** : 1. VĂ©rifier que `assets/pictogrammes/*.png` existent 2. VĂ©rifier les permissions de fichier 3. VĂ©rifier le chemin relatif dans `utils.js` ### Les scores ne se sauvegardent pas **Cause** : LocalStorage dĂ©sactivĂ© ou plein **Solution** : ```javascript // VĂ©rifier en console : localStorage.setItem('test', 'test'); localStorage.getItem('test'); // Doit afficher 'test' // Vider le localStorage si plein : localStorage.clear(); ``` ### Animations saccadĂ©es **Cause** : Navigateur lent ou prĂ©fĂ©rences de rĂ©duction de mouvement **Solution** : - DĂ©sactiver les animations avancĂ©es pour mobiles lents - VĂ©rifier les paramĂštres d'accessibilitĂ© du navigateur ### ProblĂšmes de responsive **Cause** : Viewport mal configurĂ© **Solution** : VĂ©rifier que le HTML contient : ```html ``` --- ## Debug Mode Activer le mode debug avec **Ctrl+Shift+D** : ```javascript // En console : DEBUG.log('Message de debug'); DEBUG.table(donnees); // Voir tous les scores : debugScores(); // Nettoyer les scores : clearAllScores(); // Exporter les stats : LeaderboardManager.exportCSV(); ``` --- ## Performance ### Optimisations AppliquĂ©es - ✅ CSS Grid pour layout performant - ✅ Transform & Opacity pour animations (GPU) - ✅ Event delegation pour cartes - ✅ LocalStorage au lieu d'API - ✅ Lazy loading des pictogrammes ### Benchmarks - **FPS** : 60 FPS constant (animations fluides) - **Charge de page** : < 500ms - **Taille totale** : ~450KB (HTML + CSS + JS + images) - **Memory** : ~5MB par session --- ## AccessibilitĂ© ### ConformitĂ© - ✅ WCAG 2.1 AA - ✅ Navigation au clavier (Tab) - ✅ Respects `prefers-reduced-motion` - ✅ Contraste de couleurs adĂ©quat - ✅ Alt text sur images ### Raccourcis Clavier - **Tab** : Navigation entre cartes - **EntrĂ©e** : Retourner une carte - **Ctrl+Shift+D** : Mode debug --- ## Licence & Attribution **Jeu Memory Pictogrammes GHS** - **Auteur** : NextGN Formation - **Licence** : MIT - **AnnĂ©e** : 2024 ### Attribution Pictogrammes Les 9 pictogrammes GHS/CLP sont issues de la norme internationale (Public Domain) --- ## Support & Maintenance ### Rapporter un Bug 1. Ouvrir la console (F12) 2. Reproduire le bug 3. Noter le message d'erreur 4. Contacter support@nextgnformation.com ### Mises Ă  Jour - 🔄 VĂ©rifier les mises Ă  jour rĂ©guliĂšrement - 📝 Changelog disponible dans `/CHANGELOG.md` - 🔐 Mises Ă  jour de sĂ©curitĂ© prioritaires --- ## FAQ **Q : Puis-je utiliser ce jeu offline ?** A : Oui ! Le jeu fonctionne entiĂšrement offline. Les scores sont sauvegardĂ©s localement. **Q : Combien de joueurs peuvent jouer simultanĂ©ment ?** A : Pas de limite thĂ©orique. Chaque joueur a son propre espace de stockage. **Q : Puis-je modifier les pictogrammes ?** A : Oui, modifiez `assets/pictogrammes/` et mettez Ă  jour `utils.js`. **Q : Comment rĂ©initialiser les scores ?** A : Mode debug : tapez `clearAllScores()` en console. **Q : Puis-je exporter les scores ?** A : Oui : `LeaderboardManager.exportCSV()` en console. --- **Enjoy Learning! 🎼🏆** Pour plus d'informations, visitez : https://www.nextgnformation.com