Я новичок в кодировании в целом, и я выбрал python в качестве своего первого языка, чтобы узнать, потому что несколько друзей сказали, что это просто и весело. Я решил сделать небольшую текстовую игру, и моя демонстрация для нее прошла хорошо, за исключением одной проблемы. Я не могу получить корректировки для здоровья, чтобы переносить, и после тонны тестирования и поиска я все еще не могу понять, как это сделать.Как вы изменяете значение глобальной переменной и сохраняете эту глобальную переменную глобальную?
def combat():
global playerhealthpoints
playerhealthpoints = 100
def cavecombat():
combatroundinput = raw_input("The round has begun. Do you Block, Dodge, or Run?").lower()
if combatroundinput == "block":
enemyattackroll = random.randrange(1,10)
if enemyattackroll < 5:
print "Enemy has missed their attack this round."
cavecombat()
elif enemyattackroll >= 5:
enemydamageroll = random.randrange(1,10)/2
playerhealthpoints = playerhealthpoints - enemydamageroll
print "You have taken %s damage." %enemydamageroll
print "You have %s health remaining." %playerhealthpoints
cavecombat()
elif combatroundinput == "dodge":
enemyattackroll = random.randrange(1,10)/2
if enemyattackroll < 5:
print "Enemy has missed their attack this round."
cavecombat()
elif enemyattackroll >= 5:
enemydamageroll = random.randrange(1,10)
playerhealthpoints = playerhealthpoints - enemydamageroll
print "You have taken %s damage." %enemydamageroll
print "You have %s health remaining." %playerhealthpoints
cavecombat()
elif combatroundinput == "run":
playerrunroll = random.randrange(1,10)
enemyattackroll = random.randrange(1,10) * 2
if enemyattackroll < 5 and playerrunroll <5:
print "Enemy has missed their attack this round."
print "You have failed to run from this encounter."
cavecombat()
elif enemyattackroll >= 5 and playerrunroll >= 5:
enemydamageroll = random.randrange(1,10)
playerhealthpoints = playerhealthpoints - enemydamageroll
print "You have taken %s damage." %enemydamageroll
print "You have %s health remaining." %playerhealthpoints
print "You have succeeded in escaping the enemy."
elif enemyattackroll < 5 and playerrunroll >= 5:
print "Enemy has missed their attack this round."
print "You have succeeded in escaping the enemy."
elif enemyattackroll >= 5 and playerrunroll < 5:
enemydamageroll = random.randrange(1,10)
playerhealthpoints = playerhealthpoints - enemydamageroll
print "You have taken %s damage." %enemydamageroll
print "You have %s health remaining." %playerhealthpoints
print "You have failed to run from this encounter."
cavecombat()
else:
print "Learn to type, you suck."
cavecombat()
cavecombat()
combat()
Это моя самая последняя попытка получить здоровье, чтобы придерживаться любого совета.
Это много кода для нас, чтобы выяснить! Попробуйте кипячение проблемы только несколько строки и сообщения, которые ... и точно, что пошло не так. – tdelaney
Объявите переменную за пределами функции. Затем ссылайтесь на нее изнутри функции с помощью global. Тем не менее, я не рекомендую использовать глобальные переменные. – RobertB