Dojo Defender Session 7 : Notes du coach
Objectif de cette session
Après cette session, un ninja sait :
- Trouver et planifier lui-même une feature à l’aide d’un plan d’étapes simple
- Lire et comprendre du code existant pour y ajouter quelque chose
- Résoudre un problème de façon autonome avec un accompagnement minimal du coach
Cette session est différente de toutes les précédentes — pas d’instructions pas à pas. Le ninja choisit lui-même ce qu’il construit.
Préparation (30 min avant la session)
- Le ZIP du starter prêt sur USB et sur le site :
dojo-defender-s8-starter.fr.zip. - Le starter est la solution complète de DD S7 (boss + toutes les features). Lance-le une fois sur le portable de la salle dojo.
- Mets-toi d’accord avec les autres coaches pour savoir quel ninja fait quelle feature, pour avoir de la variété dans le showcase.
- Imprime quelques modèles de planification (le bloc « Planification guidée par le coach » de la fiche de travail) pour les ninjas qui préfèrent travailler sur papier.
Répartition du temps (3 heures)
Cette session fait partie intégrante de la session normale 8 (Sky Highway) :
| Temps | Activité |
|---|---|
| 0:00 à 1:15 | Session 8 : Sky Highway (étapes 1-4) |
| 1:15 à 1:30 | Intro Dojo Defender : « Ton jeu, ta feature » |
| 1:30 à 1:45 | Choisir une feature + planifier (guidé par le coach) |
| 1:45 à 2:30 | Construire en autonomie |
| 2:30 à 2:50 | Showcase |
| 2:50 à 3:00 | Buffer / rangement |
Jeu de rôle du coach
Cette session tourne autour de l’autonomie. Ton rôle de coach :
Ne pas trop résoudre. Si un ninja bloque, pose des questions au lieu de donner des réponses :
- « Que se passe-t-il quand tu appuies sur ESPACE ? »
- « Quelle variable doit changer ? »
- « Où se trouve le vaisseau dans le code ? »
Garder le scope. Les ninjas veulent souvent trop en faire en même temps. Aide-les à choisir la plus petite version qui « marche ». Un power-up qui marche vaut mieux qu’un système de combo à moitié fini.
Célébrer l’échec. Si ça ne marche pas, c’est aussi formateur. Fais-leur raconter ce qui a raté et ce qu’ils en ont appris.
Questions fréquentes
« Les power-ups n’apparaissent pas »
Vérifie que spawn_powerup() est appelé là où un ennemi meurt (à la collision balle-ennemi). Aussi : random.random() < 0.2, c’est 20 % — ce n’est pas beaucoup. Fais-leur mettre 0.5 temporairement pour tester.
« Le spread shot ne tire qu’une balle »
bullet.dx et bullet.dy doivent être ajoutés à l’update des balles. Sans ces variables, toutes les balles volent droit vers le haut. Ajoute bullet.dx = 0 et bullet.dy = -8 à la création des balles normales, et bullet.rect.x += bullet.dx et bullet.rect.y += bullet.dy dans la boucle d’update.
« Le timer du power-up ne se remet pas à zéro après un restart »
N’oublie pas : active_powerup = None et powerup_timer = 0 dans reset_game().
« Le high score n’est pas sauvegardé »
save_highscore() doit être appelé sur l’écran de game over, avant que reset_game() soit appelé. Sinon le score vaut déjà 0.
« High score.txt s’écrase sans arrêt »
Le test if val > load_highscore() évite qu’un score plus bas écrase le record. Ça ne marche pas ? Fais-leur ajouter des print() pour débugger.
« Le vaisseau est invisible après un restart »
ship.visible = True doit se trouver dans reset_game(). Les ninjas oublient parfois ça.
Implémentation des power-ups (pour les coaches)
La solution des power-ups marche comme ceci :
- Spawn :
spawn_powerup(x, y)est appelé là où un ennemi meurt. 20 % de chance. - Collect : dans la game loop, on vérifie si un power-up touche le vaisseau.
- Timer :
powerup_timerdécompte à chaque frame. À 0,active_powerup = None. - Spread shot : remplace le tir normal. Au lieu d’une balle, 3 balles avec un angle.
- Bouclier : lors d’un hit,
active_powerup = Noneest mis etinvincible = Truependant 5 secondes. - Speed boost :
ship_speedest doublé, de 5 à 10.
Showcase
Fais présenter chaque ninja 30 secondes. Trois questions fixes :
- Qu’est-ce que tu voulais faire ?
- Est-ce que ça a marché ?
- Qu’est-ce qui a été le plus difficile ?
Comme coach : nomme chaque fois quelque chose de précis qui a bien marché (« Joli, ce timer que tu as ajouté », « Bien vu d’avoir compris comment fonctionne le fichier high score »).
Script du cliffhanger
« Aujourd’hui, tu as ajouté ta propre feature à Dojo Defender. La prochaine fois, on commence un jeu complètement nouveau — mais Dojo Defender restera toujours là. Emporte-le chez toi et continue à le bricoler. »