Я работаю над текстовой игрой на python. И у меня возникла небольшая проблема. Один из методов моего класса сообщает программе, что делать, когда противник атакует. Вот кодЛокальная переменная, на которую ссылаются до ошибки присваивания
def attack(self, method):
user_health_old = user_health
self.method = method
probs = random.randrange(1,100)
if method == "Knife":
while user_health > 0:
if probs in range(1,70):
attackWin = True
break
else:
attackWin = False
pla = player()
pla.healthRem(7)
if user_health < 1:
death()
elif method == "Hands":
while plaHealth > 0:
if probs in range(1,40):
attackWin = True
break
else:
attackWin = False
pla.healthRem(7)
if user_health < 1:
death()
pla = player()
pla.attackStatus()
игрок() является классом, и этот метод атаки() attackStatus() немного после того, как кусок, который скажет игроку, что произошло в бою, вот код, который
def attackStatus(self):
if attackWin == True:
print "You Win, this time"
time.sleep(2)
if user_health < user_health_old:
print "But you're victory did come at a cost"
time.sleep(2)
print "You're new health value is: ",user_health
time.sleep(3)
И еще пару строк кода, вместо выполнения всей программы, атм я просто его настроить, чтобы запустить этот модуль,
pla = player()
pla.attack("Knife")
проблема возникает, когда я запускаю прогу ОЗУ. Он открывает консоль, но сразу уходит. Он также не выводит никакой информации. Я не совсем уверен, что происходит, если кто-то может мне помочь, я бы очень его оценил.
Опубликовать полный обзор. –
Ваша переменная 'user_health' никогда не инициализируется в коде, который вы нам показали – karthikr
И что с операциями' break', которые не находятся в цикле? – kindall