#python #if-statement #while-loop
#python #if-statement #цикл while
Вопрос:
Камень, ножницы, бумага, пункт 2…
Я пытаюсь создать игру «Камень, ножницы, бумага», и пока у меня есть это:
from random import randint
print("Rock...")
print("Paper...")
print("Scissors...")
player_wins = 0
computer_wins = 0
while player_wins < 3 and computer_wins < 3:
print(f"{computer_wins} to {player_wins}")
player1 = input("Player 1, make your move: ").lower()
computer_choices = ["rock", "paper", "scissors"]
computer_choice = randint(0, 2)
computer = [computer_choices[computer_choice]]
print(computer)
if player1 == computer:
print("It's a tie!")
elif player1 == "rock":
if computer == "scissors":
print("player1 wins!")
player_wins = 1
elif computer == "paper":
print("computer wins!")
computer_wins = 1
elif player1 == "paper":
if computer == "rock":
print("player1 wins!")
player_wins = 1
elif computer == "scissors":
print("computer wins!")
computer_wins = 1
elif player1 == "scissors":
if computer == "rock":
print("computer wins!")
computer_wins = 1
if computer == "paper":
print("player1 wins!")
player_wins = 1
else:
print("something went wrong")
По сути, я пытаюсь заставить его принимать входные данные, выбирать случайный выбор, а затем сравнивать варианты. У меня есть первые две части, где он выбирает выбор и принимает входные данные, но он не вводит операторы if внутри цикла while. Это просто продолжается вечно.
Что я здесь делаю не так?
Ответ №1:
Выбор компьютера всегда представляет собой список, и вы сравниваете его со строкой.
Измените эту строку:
computer = [computer_choices[computer_choice]] # list with one string item
К этому:
computer = computer_choices[computer_choice] # string
Игра работает корректно с этим изменением.