Ga naar hoofdinhoud

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.