И score
, и highscore
являются локальными для move()
и сбрасываются в ноль заново при каждом запуске. Они должны быть глобальными и должны быть объявлены global
.
Если мы посмотрим на move()
с точки зрения , это будет выглядеть так:
def move():
score = 0
high_score = 0
# Increase the score
score = + 10
if score > high_score:
high_score = score
pen.write("Score: {} High Score: {}".format(score, high_score), ...))
Гдеscore
и highscore
являются локальными до move()
. То, что мы действительно ожидаем, больше похоже на:
score = 0
high_score = 0
def move():
global score, high_score
# Increase the score
score += 10
if score > high_score:
high_score = score
pen.write("Score: {} High Score: {}".format(score, high_score), ...))
Читайте о ключевом слове Python global
и о глобальных переменных Python в целом.