Ga naar hoofdinhoud

7. Een score bijhouden met global

Hoe houd je een score bij in een spel? Als je een variabele, zoals score, wilt aanpassen binnen een functie, heb je het speciale sleutelwoord global nodig.

7.1 Een veelgemaakte fout

Kopieer onderstaande code naar je editor en voer de code uit:

import play

score = 0
score_tekst = play.new_text(str(score), y=100, font_size=40)

@play.when_key_released("space")
def spatie_ingedrukt():
score = score + 1
score_tekst.words = str(score)

play.start_program()

Druk maar eens op spatie. Als het goed is verandert er niets en zie je het volgende in je console:

UnboundLocalError: local variable 'score' referenced before assignment

Dit betekent dat we niet de rechten hebben om de variabele score te wijzigen.

7.2 een goed voorbeeld

We gaan het statement global toevoegen. Als we het commando global VARIABLE geven, dan hebben we wel de rechten om de variabele te wijzigen.

import play

score = 0
score_tekst = play.new_text(str(score), y=100, font_size=40)

@play.when_key_released("space")
def spatie_ingedrukt():
global score
score = score + 1
score_tekst.words = str(score)

play.start_program()