Я делаю базовый код ножницы для школьной бумаги, но мои утверждения elif не работают.Заявления Elif не печатаются
def player1(x):
while x != 'rock' and x != 'paper' and x != 'scissors':
print("This is not a valid object selection")
x = input("Player 1? ")
def player2(x):
while x != 'rock' and x != 'paper' and x != 'scissors':
print("This is not a valid object selection")
x = input("Player 2? ")
def winner():
player1(input("Player 1? "))
player2(input("Player 2? "))
if player1 == 'rock' and player2 == 'rock':
print('Tie')
elif player1 == 'paper' and player2 == 'paper':
print('Tie')
elif player1 == 'rock' and player2 == 'paper':
print('Player 2 wins')
elif player1 == 'paper' and player2 == 'rock':
print('Player 1 wins')
elif player1 == 'rock' and player2 == 'scissors':
print('Player 1 wins')
elif player1 == 'scissors' and player2 == 'rock':
print('Player 2 wins')
elif player1 == 'paper' and player2 == 'scissors':
print('Player 2 wins')
elif player1 == 'scissors' and player2 == 'paper':
print('Player 1 wins')
elif player1 == 'scissors' and player2 == 'scissors':
print('Tie')
winner()
Когда я запускаю этот код, он запрашивает 'Player 1?' и не примет ничего, кроме камня, бумаги или ножниц. Затем он продолжает делать то же самое для player2. Однако здесь заканчивается код, и он не будет запускать мои заявления elif и печатать, какой игрок выигрывает.
Редактировать: Solved. Спасибо, что помогли новичку. Я полностью забыл вернуть строки и присвоить их переменным.
Ждать, 'player1' или' player2' не являются переменными, они являются ссылками на функции ... и вы сравниваете их со строками? Я также подумал бы вернуть «х» обратно вызывающему, если вы хотите использовать его в «победителе». – Li357