Na een aantal oefeningen op variabelen, begint meestal het echte werk: de controlestructuren. Ook in Scratch begin je meestal met de selectie. Typisch kijk je dan of een sprite zich op een bepaalde manier gedraagt en wijzig je het gedrag indien aan een aantal voorwaarden voldaan is.
Wanneer je op de spatiebalk klikt, controleer je de snelheid van de sprite:
- Indien de afstand tot de muisaanwijzer kleiner is dan 5, zet de sprite bewegingsloos in het midden van het scherm.
- Indien de afstand tot de muisaanwijzer kleiner is dan 10 en de snelheid groter dan 30, deel dan de snelheid door 2.
- In alle andere gevallen verhoog je de snelheid met 3.
Volgende scratchblokken vormen de oplossing het probleem:
when [space] key pressed
if <(distance to [_mouse_]) lt "5">
set [snelheid] to "0"
go to x: {0} y: {0}
else
if <<(distance to [_mouse_]) lt "10"> and <(snelheid) gt "30">>
set [snelheid] to ((snelheid) / {2})
else
change [snelheid] by {3}
end
end
De syntax van het if-statement ziet er als volgt uit:
if <boolean expressie>:
<acties>
else:
<acties>
In de syntactische beschrijving van het if statement, zie je dat <acties> “inspringt,” dus één tabulatie naar rechts is geplaatst (inspringen is “to indent” in het Engels). Dit is opzettelijk zo gedaan en noodzakelijk. Python beschouwt statements die elkaar opvolgen en die hetzelfde niveau van inspringing hebben als één blok code.
Een voorbeeld:
if lengte > 1.30 or (lengte > 1.20 and begeleiding == True):
toegang_wickie_de_viking = True
wachtrij += 1
else:
toegang_wickie_de_viking = False
Vraag aan de gebruiker achtereenvolgens x-coördinaat, y-coördinaat en snelheid van de sprite. Vervolgens vraag je de afstand tot de muisaanwijzer op. Voor de eenvoud mag je aannemen dat dit allemaal gehele getallen zijn.
De snelheid, x- en y-coördinaten worden dan als volgt aangepast:
Schrijf de nieuwe waarden uit zoals in de voorbeelden.
153
-12
34
4
x = 0 y = 0 snelheid = 0
-98
123
35
9
x = -98 y = 123 snelheid = 17.5