Было несколько проблем с вашим кодом.
def player_choice():
input('Rock, Paper or Scissors? ')
return player_choice
player_choice не инициализирован. Ввод принимает пользовательский ввод, но результат нигде не сохраняется.
def get_player_choice():
choice = input("Rock, Paper or Scissors? ")
return choice
Та же процедура для computer_choice
.
Тогда есть:
ps = print('player score: ', player_score)
cs = print('computer_score: ',computer_score)
I Предположим, вы пытались построить строку, содержащую оценки. Я предлагаю вместо этого
def print_score():
print('player score: ', player_score)
print('computer_score: ',computer_score)
. Затем вы можете вызвать функцию, когда захотите увидеть счет.
И, наконец, отступ был неправильным для операторов if-else. Это должно было быть в то время l oop. Теперь он просто запрашивает у пользователя ввод и генерирует выбор для компьютера в бесконечном l oop.
Вот все изменения, которые я предложил вместе:
import random
player_score = 0
computer_score = 0
options = ['rock', 'paper', 'scissors']
def get_player_choice():
player_choice= input('Rock, Paper or Scissors? ')
return player_choice
def get_computer_choice():
computer_choice = random.choice(options)
print(computer_choice)
return computer_choice
def print_score():
print('player score: ', player_score)
print('computer_score: ',computer_score)
while player_score < 10 and computer_score < 10:
player_choice = get_player_choice()
computer_choice = get_computer_choice()
if player_choice == 'rock' and computer_choice == 'rock':
print('Tie')
elif player_choice == 'rock' and computer_choice == 'paper':
print('Computer wins')
computer_score = computer_score + 1
print_score()
elif player_choice == 'rock' and computer_choice == 'scissors':
print('You win')
player_score = player_score + 1
print_score()