Apprentissage — classes de base
Classes parentes et utilitaires partagés par tous les modes cognitifs : AnswerManager (héritage), GameManager_A, paramètres de données et système de miroir élève/prof.
Le dossier Gameplay/Apprentissage/ contient les classes de base et les utilitaires partagés par tous les modes cognitifs (APA, AS). La plupart sont dans un sous-dossier A trier/ — code de l’ancienne architecture.
[!NOTE] Ces classes utilisent un système d’héritage et d’événements pour synchroniser les écrans du professeur et de l’élève sans couplage fort.
Système de réponses — AnswerManager
Hiérarchie d’héritage : AnswerManager (base) → AnswerManager_Keyboard ou AnswerManager_QCM.
AnswerManager.cs — classe parente
Définit le contrat commun pour tout gestionnaire de réponses. N’implémente rien par elle-même (affiche des Debug.Log si les méthodes ne sont pas surchargées).
| Méthode à surcharger | Description |
|---|---|
VerifyAnswer(int index) | Vérifie la réponse selon l’index du bouton cliqué (QCM) |
VerifyAnswer(string answer) | Vérifie la réponse tapée au clavier |
Display(bool display) | Affiche ou masque les éléments d’interface |
CorrectAnswerAnimation() | Déclenche les retours visuels pour une bonne réponse |
SetAnswer(QuestionData questionListItem) | Prépare le manager avec les données de la question courante |
AnswerManager_Keyboard.cs — mode clavier
Compare le texte tapé avec la solution. Nettoie les balises de couleur HTML avant la comparaison pour éviter de compter faux une réponse correcte.
| Variable | Description |
|---|---|
_correctAnswer | Solution attendue pour la question en cours |
_isVerifyingAnswer | Verrou empêchant de spammer Entrée pendant l’animation |
colorGoodAnswer / colorBadAnswer | Couleurs de feedback appliquées au fond |
| Méthode | Description |
|---|---|
VerifyAnswer(string answer) | Utilise un Regex pour retirer les balises HTML avant la comparaison |
CorrectAnswerAnimation() | Son de réussite, fond vert, chrono pour passer à la suite |
WrongAnswerAnimation() | Fond rouge 1 s, puis affiche la correction en vert avant de continuer |
AnswerManager_QCM.cs — mode QCM (ancienne architecture)
Pioche les mauvaises réponses dans le JSON, les mélange avec la bonne, assigne les textes aux boutons, et uniformise la taille de police pour que la réponse la plus longue ne paraisse pas différente.
| Variable | Description |
|---|---|
_nbrOfAnswer | Nombre de propositions affichées (défaut : 3) |
_correctAnswerIndex | Index du bouton contenant la bonne réponse après mélange |
| Méthode | Description |
|---|---|
PickAnswer(...) | Choisit aléatoirement N-1 fausses réponses, ajoute la solution, mélange et enregistre _correctAnswerIndex |
ChangerAnswerText(...) | Active l’AutoSizing sur tous les textes, trouve la taille minimale et force cette taille sur tous les boutons |
VerifyAnswer(int index) | Désactive les boutons, compare l’index cliqué à _correctAnswerIndex, lance l’animation |
Système de questions — GameManager de base
GameManager_A.cs — classe parente
Garantit que tous les GameManagers dérivés exposent les mêmes points d’entrée.
| Méthode à surcharger | Description |
|---|---|
NextQuestion() | Passe à la question suivante |
StopQuestionning() | Interrompt ou met en pause la pose de questions |
GameManager_AS.cs — mode clavier interactif
Chef d’orchestre du mode AS Interactif Clavier. Récupère les paramètres, initialise les managers, pilote la barre de progression et gère la boucle jusqu’à atteindre le quota de questions.
| Méthode | Description |
|---|---|
Start() | Lance asPlaylist, remplit l’interface depuis ActivityDataManager, enregistre “AS-Interactif-Clavier” dans PlayerData |
InitializeGameParameter() | Affiche les textes du menu, transmet les JSON au QuestionManager, prépare la barre de progression |
StartGameButton() | Active le jeu, affiche la barre et lance la première question |
NextQuestion() | Vérifie si le quota est atteint. Si oui : fin de jeu. Sinon : question suivante, tirage élève, avance la barre. |
HandleEndGame() | Coroutine : stoppe la barre, affiche “Fin de l’activité !” 2 s, retourne au menu |
Conteneurs de données — ParameterData
Deux structs/classes sérialisables qui transportent la configuration des menus vers les GameManagers après le chargement de scène.
APA_ParameterData.cs
| Variable | Description |
|---|---|
jsonDatabase | Chemin du fichier JSON des questions |
usePresence | Activer le tirage au sort depuis la liste de présence |
isDifficult | Mode de difficulté accru |
answerTime | Temps accordé pour répondre (défaut : 7 s) |
gameDuration | Durée totale de l’activité (défaut : 180 s) |
numberOfAnswersShowed | Nombre de propositions QCM à afficher |
modeDeJeu | Énumération du mode de jeu précis |
title, subTitle, consigne, rappel | Textes affichés dans l’interface |
AS_ParameterData.cs
Structure similaire, allégée pour les modes cognitifs sans physique.
| Variable | Description |
|---|---|
answerTime | Temps imparti (défaut : 7 s) |
answerToShow | Nombre de boutons de réponse (défaut : 3) |
gameDuration | Durée limite (défaut : 60 s) |
Gestion des questions (ancienne architecture)
| Script | Rôle |
|---|---|
QuestionsData.cs | Modèles sérialisables (QuestionDataList, QuestionData) + méthode Randomize() |
JSONFusionner.cs | Utilitaire statique qui fusionne plusieurs fichiers JSON en une seule liste unifiée |
QuestionManager_Apprentissage.cs | Charge les JSON, mélange, gère l’index courant, déclenche OnQuestionChangeEvent |
Mode miroir professeur / élève
Synchronise en temps réel l’écran de l’élève avec celui du prof via des événements.
| Script | Rôle |
|---|---|
UIManager_Apprentissage.cs | Centralise les textes (titre, consigne, aide-mémoire). Déclenche OnGameRappelChangeEvent et OnQuestionTextChangeEvent à chaque changement. |
StudentManager_APA.cs | Gère la sélection des élèves, instancie leurs avatars, génère une icône 2D via RenderTexture. Envoie OnStudentSelectedEvent. |
StudentPanel_APA_UnPourTous.cs | Le miroir. S’abonne à tous les événements des autres managers dans Awake(). Duplique instantanément toute modification visuelle sur l’écran de l’élève. |
Configuration
| Script | Rôle |
|---|---|
ModeJeu_SO.cs | ScriptableObject liant une valeur d’énumération à son prefab de menu, son titre et sa visibilité (Classe ou Maison) |
APA_TypeEnum.cs | Catégorise si on est en phase d’Apprentissage ou d’Activite physique |