Dojo Defender Sessie 7: Coach-notities
Doel van deze sessie
Na deze sessie kan een ninja:
- Zelf een feature bedenken en plannen aan de hand van een eenvoudig stappenplan
- Bestaande code lezen en begrijpen om er iets aan toe te voegen
- Zelfstandig een probleem oplossen met minimale coach-begeleiding
Deze sessie is anders dan alle vorige — geen stap-voor-stap instructies. De ninja kiest zelf wat hij bouwt.
Voorbereiding (30 min vóór de sessie)
- Starter ZIP klaar op USB en de site:
dojo-defender-s8-starter.zip. - De starter is de complete DD S7 oplossing (boss + alle features). Draai hem één keer op de dojoruimte-laptop.
- Spreek met de andere coaches af welke ninja’s welke feature doen, zodat er variatie is in de showcase.
- Print een paar planning-sjablonen (het Coach-geleide planning blok uit de worksheet) voor ninja’s die liever op papier werken.
Tijdsindeling (3 uur)
Deze sessie is integraal onderdeel van de normale sessie 8 (Sky Highway):
| Tijd | Activiteit |
|---|---|
| 0:00 tot 1:15 | Sessie 8: Sky Highway (Stap 1-4) |
| 1:15 tot 1:30 | Dojo Defender intro: “Jouw game, jouw feature” |
| 1:30 tot 1:45 | Feature kiezen + plannen (Coach-geleid) |
| 1:45 tot 2:30 | Zelfstandig bouwen |
| 2:30 tot 2:50 | Showcase |
| 2:50 tot 3:00 | Buffer / opruimen |
Coach-rollenspel
Deze sessie draait om zelfstandigheid. Jouw rol als coach:
Niet te veel oplossen. Als een ninja vastloopt, stel vragen in plaats van antwoorden te geven:
- “Wat gebeurt er als je op SPACE drukt?”
- “Welke variabele moet veranderen?”
- “Waar in de code staat het schip?”
Bewaken van scope. Ninja’s willen vaak te veel tegelijk. Help ze de kleinste versie te kiezen die “werkt”. Een werkende power-up is beter dan een half afgemaakt combo-systeem.
Vieren van mislukking. Als het niet werkt, is dat óók leerzaam. Laat ze vertellen wat er fout ging en wat ze ervan leerden.
Veelgestelde vragen
“Power-ups spawnen niet”
Check of spawn_powerup() wordt aangeroepen waar een enemy sterft (bij de bullet-enemy collision). Ook: random.random() < 0.2 is 20% — dat is niet veel. Laat ze tijdelijk 0.5 maken om te testen.
“Spread shot schiet maar 1 kogel”
De bullet.dx en bullet.dy moeten worden toegevoegd aan de bullet update. Zonder die variabelen vliegen alle kogels recht omhoog. Voeg bullet.dx = 0 en bullet.dy = -8 toe bij het aanmaken van gewone kogels, en bullet.rect.x += bullet.dx en bullet.rect.y += bullet.dy in de update loop.
“Power-up timer reset niet na restart”
Vergeet niet: active_powerup = None en powerup_timer = 0 in reset_game().
“High score wordt niet opgeslagen”
save_highscore() moet worden aangeroepen op het game-over scherm, voordat reset_game() wordt aangeroepen. Anders is de score al 0.
“High score.txt overschrijft steeds”
De check if val > load_highscore() voorkomt dat een lagere score de hoge overschrijft. Werkt dat niet? Laat ze print() toevoegen om te debuggen.
“Het schip is onzichtbaar na een restart”
ship.visible = True moet in reset_game() staan. Ninja’s vergeten dit soms.
Power-up implementatie (voor coaches)
De power-up oplossing werkt als volgt:
- Spawn:
spawn_powerup(x, y)wordt aangeroepen waar een enemy sterft. 20% kans. - Collect: in de game loop checken we of een power-up het schip raakt.
- Timer:
powerup_timertelt elke frame af. Bij 0 wordtactive_powerup = None. - Spread shot: vervangt het normale schieten. In plaats van 1 kogel, 3 kogels met een hoek.
- Shield: bij een hit wordt
active_powerup = Nonegezet eninvincible = Truevoor 5 seconden. - Speed boost:
ship_speedwordt verdubbeld van 5 naar 10.
Showcase
Laat elke ninja 30 seconden presenteren. Drie vaste vragen:
- Wat wilde je maken?
- Is het gelukt?
- Wat was het moeilijkst?
Als coach: benoem steeds iets specifieks dat goed ging (“Mooi dat je een timer hebt toegevoegd”, “Knap dat je de high score file的工作原理 hebt uitgevogeld”).
Cliffhanger-script
“Vandaag heb je je eigen feature aan Dojo Defender toegevoegd. Volgende keer beginnen we aan een compleet nieuw spel — maar Dojo Defender blijft altijd bestaan. Neem hem mee naar huis en blijf eraan sleutelen.”