De score aanpassen bij pijltje omhoog
Voor de leerlingen die Informatica-ACTIEF als methode hebben, is dit het moment om Hoofdstuk 6 - Functies (deel 2) te gaan doen :).
import play
score = 0
tekst_links = play.new_text(
words=str(score), # str zorgt ervoor dat de score een tekst wordt
x=0,
y=0,
)
@play.when_key_pressed('up')
def score_ophogen(key):
if key == 'up':
score = score + 1
tekst_links.words = str(score)
play.start_program()
Stap 1: probeer te snappen wat er misgaat
Draai het codefragment. Wat gaat er mis? En waarom?
Klik hier voor een tip
Het heeft iets te maken met het bereik van score. Mag deze wel van waarde veranderen binnen de functie?
Vind je het lastig? Klik hier voor het antwoord.
score is aangemaakt buiten de functie score_ophogen. Je mag de waarde van de variabele niet veranderen binnen de functie score_ophogen
Stap 1: global to the rescue
Maar hoe zorgen we ervoor dat we score wel kunnen veranderen binnen de functie? Nou, zo:
import play
score = 0
tekst_links = play.new_text(
words=str(score), # str zorgt ervoor dat de score een tekst wordt
x=0,
y=0,
)
@play.when_key_pressed('up')
def score_ophogen(key):
global score
if key == 'up':
score = score + 1
tekst_links.words = str(score)
play.start_program()
Met het woord global geven we Python het recht om score te veranderen binnen de functie, ook al is deze buiten de functie gemaakt.