Flappy Bat (Programmeren met Greenfoot)

Greenfoot is een programmeeromgeving waarmee je op een eenvoudige manier programma's maakt met een visuele component: spelletjes, simulaties, ... De programmeer'taal' die je gebruikt is Stride. Stride houdt ergens het midden tussen een grafische en een tekstuele programmeertaal en is gebaseerd op Java.

We bouwen een eenvoudig spelletje dat doet denken aan het bekende Flappy Bird. Maar eerst analyseren we het programma om vertrouwd te raken met de manier waarop je een computer vertelt wat hij moet doen - en hoe belangrijk details hierbij zijn.

Daarna het programma zelf schrijven is niet heel moeilijk want je krijgt van ons reeds heel wat cadeau.


Links met leerplan

Leeftijd

Materiaal

Instructies

Demonstreer het programma

Start de Greenfoot-software en open het scenario flappybat-run. (Als er een venster met een foutboodschap verschijnt, dan klik je dit gewoon dicht.)

Demonstreer het programma voor de klas: klik op Run om het op te starten (Start in de Nederlandse versie), gebruik de spatiebalk om de vleermuis niet te laten neerstorten en probeer ongeschonden voorbij de stekels te geraken. Klik op Reset (Herstart) om opnieuw te beginnen. Toon ook wat er gebeurt als de vleermuis de stekels raakt, de grond of het plafond.

Analyseer het programma

Laat de leerlingen analyseren wat er gebeurt aan de hand van de volgende vragen. De antwoorden dienen voldoende gedetaileerd te zijn. Herstart en Start het programma telkens opnieuw voor elke vraag. (Antwoorden staan telkens tussen haakjes.)

Uitproberen en werken met de Greenfoot-omgeving

Open het project flappybat-start (naar keuze doe je dit klassikaal of laat je de leerlingen meedoen)

Dit toont wat Greenfoot doet: de Run-knop werkt precies alsof je telkens opnieuw op Act zou drukken. We moeten aan de computer vertellen (= programmeren) wat hij in één zo'n Act-stap precies moet doen. (Je hoeft (mag) dus in het programma zelf geen lus te schrijven om de opdrachten te herhalen. Om de 'lus' te stoppen zal je in de act()-methode dus enkel testen of de stop-voorwaarde voldaan is, en in dat geval het programma stilleggen - zie verder).

Reageren op een toets

Een programma wordt pas leuk wanneer we de computer laten reageren op bepaalde voorwaarden - bijvoorbeeld, iets anders laten doen wanneer de spatiebalk is ingedrukt. Dit doe je met een als-dan-anders-opdracht, in het Engels: if-then-else.

We vertellen hier aan de computer dat de vleermuis moet stijgen wanneer de spatiebalk is ingedrukt, en anders moet dalen. Probeer uit wat het resultaat hiervan is.

De vleermuis begrijpt nog andere voorwaarden die je bovenaan in een if-opdracht kan gebruiken. Hier is een overzicht.

Stekel

Er staan nog geen stekels in de grot. Om dit te programmeren kijken we eerst hoe de vleermuis op de wereld is gekomen:

De rest van het programma

De leerlingen weten nu voldoende om ook de rest van het programma af te werken. Het kan helpen om eerst de nodige stappen te bespreken vooraleer ze in het programma worden ingetikt. Eventueel kan dit ook klassikaal op bord (in het Nederlands).

Maak gebruik van de analyse die je eerder hebt gemaakt en de lijst van toegelaten opdrachten. Test het programma uit. Geef zeker het belang van testen aan. Laat de leerlingen geregeld nieuwe delen van de toegevoegde code testen. Benadruk ook het belang van opsplitsen van problemen in kleinere deelproblemen.

In de praktijk

Door de voorafgaande analyse leren de leerlingen niet alleen een probleem opdelen in verschillende delen, maar maken ze ook kennis met de verschillende controlestructuren zoals de sequentie en de selectie.

Laat de leerlingen nadenken over hoe ze hun programma opbouwen vóór ze het intikken. Laat ze voorspellen hoe de stekels of de vleermuis zal bewegen, vóór ze op Run klikken.