1. Inleiding
Vrijwel elk algoritme wordt beïnvloed door de keuzes van de gebruiker. Soms kan een keuze van een gebruiker ertoe leiden dat bepaalde delen van een programma wel of niet worden doorlopen. Dit wordt ook wel een selectie genoemd. In plaats van een algoritme stap per stap te doorlopen (= sequentie of opeenvolging), worden enkel de stappen doorlopen waarvoor de gebruiker heeft gekozen.
Een selectie bestaat steeds uit een voorwaarde, via de ALS-structuur. Deze ALS-structuur gaat steeds kijken of er aan een bepaalde voorwaarde wordt voldaan. Bijvoorbeeld: Is de gebruiker oud genoeg? Is het paswoord juist? Moeten er meerdere voorwaarden worden nagekeken, dan kan je werken met de logische operatoren, die je terug kan vinden onder de categorie functies. Indien aan alle voorwaarden moet voldaan worden gebruiken we de EN-operator. Wanneer er maar aan één van de meerdere voorwaarden voldaan moet worden, gebruiken we de OF-operator.
2. Voorbeelden
Voorbeeld 1: Het algoritme vraagt de leeftijd van de gebruiker. Als deze leeftijd minder is dan 18, krijgt hij een negatieve boodschap. Anders (dus wanneer hij/zij 18 jaar of meer is) krijgt hij de boodschap dat hij mag autorijden indien hij in het bezit is van een geldig rijbewijs.
Voorbeeld 2: Op een online webshop kan je producten kopen. De gebruiker geeft het aantal gekochte producten en het bedrag zonder korting toe. Het programma berekent de korting en het bedrag na korting. Als je 4 producten koopt, krijg je 30% korting, anders 15%. De gebruiker krijgt tot slot de korting en het bedrag met korting.
Voorbeeld 3: Wanneer je op de groene vlag klikt, dan start het programma. Het programma maakt automatisch een geluksgetal aan tussen 1 en 10. Je kan een gokje wagen door op de groene knop te klikken. Wanneer je op een knop drukt, mag je raden naar het geluksgetal. Wanneer je het getal hebt geraden, word je gefeliciteerd en de achtergrond Bingo verschijnt. Er wordt ook nog weergegeven wat het geluksgetal was. Vervolgens stopt het programma. Als het ingegeven getal foutief is, krijg je de boodschap HOGER of LAGER. Je kan dan nogmaals proberen door op de groene knop te klikken.
OPDRACHT 1: WINKELEN
Wanneer op de groene vlag wordt geklikt, worden er twee vragen gesteld.
- Is de koelkast leeg of vol?
- Hoeveel geld heb je nog?
Indien de koelkast leeg is EN wanneer er nog meer dan 50€ beschikbaar is, verschijnt de boodschap ‘Laten we boodschappen gaan doen!’. Indien dit niet het geval is, verschijnt de boodschap ‘We zullen nog even moeten wachten…’
Sla deze oefening op als Winkelen_VoornaamFamilienaam en plaats deze in de gedeelde map op OneDrive. Dien deze oefening ook in via Smartschool in de correcte uploadzone (keuze/selectie).
Voorbeeld eindresultaat:
OPDRACHT 2: BIOSCOOP
Bij het klikken op de groene vlag wordt er naar je leeftijd gevraagd. Wanneer je 12 jaar of ouder bent, mag je de zaal binnen. Wanneer je nog geen 12 jaar bent, verschijnt de boodschap dat je niet toegelaten wordt in de film. Pas eventueel de sprite(s) en de achtergrond aan om dit meer in het thema bioscoop te laten passen!
Uitbreiding: Voeg de sprite ‘Casey’ toe aan jouw programma. Zorg ervoor dat ‘Casey’ bij de start van het programma zijn handen niet in de lucht steekt. Dit doe je door het juiste ‘uiterlijk’ van ‘Casey’ aan te duiden. Wanneer de gebruiker aangeeft dat hij 12 jaar of ouder is, steekt ‘Casey’ één hand op en zegt hij ‘Welkom!’. Wanneer de gebruiker aangeeft dat hij jonger is dan 12 jaar, steekt ‘Casey’ beide handen in de lucht en geeft hij de boodschap dat de gebruiker niet toegelaten wordt in de film.
Sla deze oefening op als Bioscoop_VoornaamFamilienaam en plaats deze in de gedeelde map op OneDrive. Dien deze oefening ook in via Smartschool in de correcte uploadzone (keuze/selectie).
Voorbeeld eindresultaat:
OPDRACHT 3: BMI UITBREIDING
In dit project wordt eerst en vooral het BMI berekent op basis van het gewicht en de lengte die de gebruiker ingeeft. Je gebruik hiervoor onderstaande formule:
BMI= gewicht (kg) / (lengte (m) x lengte (m))
Na het berekenen van de BMI krijgt de gebruiker de corresponderende persoonlijke (!) boodschap.
Sla deze oefening op als BMI_Uitbreiding_VoornaamFamilienaam en plaats deze in de gedeelde map op OneDrive. Dien deze oefening ook in via Smartschool in de correcte uploadzone (keuze/selectie).
Voorbeeld eindresultaat:
OPDRACHT 4: PONG TEGEN COMPUTER
Start:
- Download het programma Pong. De oefening zit in een zipbestand, dus je moet dit eerst uitpakken vooraleer je het kan openen in Scratch.
Wanneer je het project opent, zal je zien dat er twee sprites beschikbaar zijn (plankje en bal). Aan het plankje is er ook al wat code toegevoegd:
Hiermee zorg je ervoor dat het plankje start op de beginpositie en vervolgens links en rechts zal bewegen, afhankelijk van de positie van de muis. Dit gebeurt door de hele tijd (vandaar de onbegrensde herhaling) de x-coördinaat van het plankje gelijk te stellen aan de x-coördinaat van de muis. Nu is het aan jou om de bal te programmeren.
Start Bal:
- De bal zal beginnen bewegen wanneer op de groene vlag wordt geklikt.
- Het is de bedoeling dat de gebruiker van dit programma de hele tijd zicht heeft op de score. Werk daarom met een variabele ‘Score’ en zet deze na de start van het programma op waarde 0.
- De waarde de variabele is normaal gezien niet zichtbaar voor de gebruiker. Je kan een variabele wel zichtbaar maken door gebruik te maken van de blok .
- Geef de bal een goede startpositie bovenaan het speelveld. Welke blok gebruik je hiervoor?
-
- Als we op de groene vlag klikken, willen we dat de bal naar de startpositie gaat en dan onmiddellijk naar beneden valt in een richting die de computer zelf kiest. Kies de juiste blokken zodat de bal naar beneden gericht is naar een willekeurig getal tussen 135 en 225 (graden).
Start Spel:
- Het spel zal blijven lopen, of anders gezegd zich blijven herhalen totdat wij het zelf stoppen (door bijvoorbeeld op te klikken). Je moet dus werken met een onbegrensde herhaling.
- Wat er ook gebeurt tijdens het spel, de bal zal steeds met dezelfde snelheid moeten bewegen (12 stappen) en steeds moeten omkeren wanneer de rand wordt geraakt. Breng dit in orde door de juiste blokken te gebruiken en plaats dit binnen de herhaling.
- Vervolgens zijn er binnen de onbegrensde herhaling 2 opties mogelijk, namelijk:
- (1) de bal valt op het plankje en gaat terug naar boven. De score stijgt met 1 punt.
- (2) de balt valt op de grond (= groene zone) en gaat terug naar boven. We laten op dit moment een geluidje afspelen. De score daalt met 1 punt.
- Vervolgens zijn er binnen de onbegrensde herhaling 2 opties mogelijk, namelijk:
Voor deze opties zal je steeds een keuze/selectie gebruiken.
- Optie 1:
- Als de bal de sprite ‘Plankje’ raakt, dan moet hij terug naar boven bewegen (= zich richten) in een willekeurige richting tussen -30 en 30 graden.
- Hierna moet de variabele Score stijgen (= veranderen) met 1 punt.
- Er moet ook een geluid ‘Pop’ afgespeeld worden.
- Optie 1:
- Optie 2:
- In het programma bestaat er niet zoiets als de lucht en de grond. Wel kan de computer de kleuren (blauw en groen) herkennen.
- Als de bal de groene kleur van de grond raakt, dan moet hij terug naar boven bewegen (= zich richten) in een willekeurige richting tussen -30 en 30 graden. Bij de keuze van de kleur kan je gebruik maken van het pipet (zie onderstaande afbeelding).
- Optie 2:
- Hierna moet de score veranderen met -1.
- Voeg zelf een geluid naar keuze toe dat moet afgespeeld worden telkens wanneer de grond wordt geraakt. Hoe doe je dit? Klik bovenaan op geluiden en voeg een geluid aan je project toe uit de bibliotheek (zie onderstaande afbeelding). Gebruik daarna de juiste codeblok om het ook effectief te laten afspelen telkens wanneer de grond wordt geraakt.
- Test je programma uit en controleer het aan de hand van onderstaande vragen:
- Gaat de bal terug omhoog wanneer deze het plankje of de grond raakt?
- Verhoogt de score wanneer de bal het plankje raakt?
- Vermindert de score wanneer de bal de grond raakt?
- Wordt er een geluid afgespeeld telkens wanneer de bal het plankje raakt?
- Wordt er een geluid afgespeeld telkens wanneer de bal de grond raakt?
- Sla deze oefening op als Pong_VoornaamFamilienaam en plaats deze in de gedeelde map op OneDrive. Dien deze oefening ook in via Smartschool in de correcte uploadzone (keuze/selectie).
Bronnen
- https://onderwijs.vlaanderen.be/nl/zo-denkt-een-computer-programmeren-en-computationeel-denken-in-het-onderwijs
- https://pincette.katholiekonderwijs.vlaanderen/meta/properties/dc-identifier/Cur-20170925-35
- Algoritmisch denken: analyseren, ontwerpen, beschrijven van oplossingen en implementeren met Scratch (Katholiek Onderwijs).
- Games programmeren met Scratch 3.0 (Kris Van Der Hoeven)
- https://www.leer-scratch.be/ (Universiteit Hasselt)
- https://kevinvermassen.be/scratch/
- https://nl.scratch-wiki.info/wiki
- https://informaticalessen.be/programmeren/de-selectie/