Я делаю игровую программу (я знаю, что это не должно быть невероятно сложно), и хочу иметь несколько игр, которые будут в подпрограммах. Тем не менее, python, кажется, считает, что мои переменные назначаются в странных местах.
Я наполовину новичок в подпрограммах, и у меня все еще есть проблемы здесь и там. Вот с чем я работаю:
# variables and subroutines
money = 500
losses = 0
wins = 0
wlr = (wins,':',losses)
egg = True
def fiftyfifty(bet):
chance = random.randint(0,100)
if chance > 50:
losses += 1
print('You lose!')
money -= bet
print('You now have ',money)
return
else:
wins += 1
print('You win!')
money += bet
print('You now have ',money)
return
А вот как это называется:
elif gamechoice == 'fifty fifty':
print('You have $',money,'\n')
t(1)
bet1 = money+1
while bet1 > money:
bet1 = int(input('How much do you want to bet?\n'))
fiftyfifty(bet1)
Я ожидаю, что это просто пройдет, добавит счет в выигрыш или проигрыш, а затем обновит деньги. Тем не менее, я получаю эту ошибку:
UnboundLocalError: local variable 'losses' referenced before assignment
Если я выигрываю, он говорит то же самое с local variable 'wins'
.
Как показано, все переменные назначаются вверху, а затем на них ссылаются ниже в подпрограммах. Я совершенно не уверен в том, как python думает, что я ссылался на него перед назначением?
Буду признателен за любую помощь, заранее спасибо!