В настоящее время я делаю небольшую игру, и в этой игре я реализовал балльную систему. Следующая строка кода упоминается в начале кода:
points = 0
Это означает, что в данный момент у игрока нет очков, но позже эти очки будут продолжать складываться, и значение не будет быть 0. Первый раз игрок сталкивается с увеличением своих очков в этой функции:
def if_castle_right():
choice = "\nYou found a silver coin that's worth 5 points!"
coin = 5
points += coin
choice += "\nWhat will to do?"
choice += "\n[a] Go back \n[b] See points \n[c] Quit \n>"
inp = input(choice)
if inp == 'a':
if_castle()
elif inp == 'b':
point_total()
return if_castle_right()
elif inp == 'c':
return
else:
char_input_fail()
return if_castle_right()
Проблема в том, что когда я выполняю код, выводится следующее:
File "C:\Users\gabyp\Documents\python_work\game\choose_your_adventure_game.py", line 179, in if_castle_right
points += coin
UnboundLocalError: local variable 'points' referenced before assignment
Я не знаю, что еще делать, потому что, если я инвертирую точки + = монета в монету + = баллы, он выводится нормально, за исключением того, что 5 баллов, которые стоит монета, не добавляются к общей сумме, он просто говорит 0.