from random import randint
from time import sleep
fight = False
def start_up():
print("Fight Simulator - Test Stages.")
userInput = str(input("Enter your name "))
user_name = userInput
return user_name
def intro():
userName = start_up()
while True:
userInput = str(input("Welcome to the dojo, {}. To commence the first battle, type 'Start', or 'Begin'".format(userName)))
if userInput == "Start" or "start" or "Begin" or "begin":
return userInput
else:
print("Enter a valid response")
break
def fight_commence():
userInput = intro()
if userInput == "Start" or "start" or "Begin" or "begin":
fight = True
userHp = 100
opponentHp = 100
while fight == True:
userDmg = randint(0,100)
opponentDmg = randint(0,100)
opponentHp -= userDmg
if opponentHp <= 0:
opponentHp == 0
print("You did {} damage".format(userDmg))
sleep(1)
print("Opponent has {} hp remaining".format(opponentHp))
sleep(1)
if opponentHp <= 0:
print("You killed him!")
fight = False
else:
print("Enter a valid action")
fight_commence()
Так что по какой-то причине код не печатает («Введите действительный ответ»), когда дается ответ, отличный от «Пуск» или «Начало» или «Начало» или «Начало». Я хочу, чтобы он вернулся к пользовательскому этапу, но вместо этого он просто продолжает работать с программой, как будто все в порядке. Я не могу понять, где я испортился.Две проблемы с моим кодом до сих пор.
Во-вторых, я хочу opponentHp автоматически равное 0, когда провалы здоровья ниже 0. Например, когда opponentHp = -45, opponentHp должен быть равен 0.
Любая помощь приветствуется.
Может помочь, если вы помечаете язык .... – epascarello
дерьмо, это питон. –
«Две проблемы с моим кодом до сих пор» - не очень конкретный/доступный для поиска заголовок. И ваша проблема - классика: 'if userInput ==« Start »или« start »или« Begin »или« begin »:' не делает то, что вы думаете, это ... (Подсказка: прочитайте его как 'if (userInput == «Пуск») или «начать» или «начать» или «начать»: ') –