Olá, Apollo. Como vai?
Muito legal a sua iniciativa de compartilhar o seu código aqui no fórum! Desenvolver o jogo de Pedra, Papel e Tesoura é um excelente exercício para praticar condicionais, loops e a importação de bibliotecas como a random. A sua lógica para definir as regras de vitória através do condicional elif ficou perfeita e muito legível.
Analisando o seu script, notei que provavelmente houve um pequeno problema de formatação na hora de copiar e colar o texto aqui na plataforma. Algumas quebras de linha sumiram (juntando blocos como na parte ]def e !')def) e a indentação acabou ficando bagunçada, colocando a definição de uma função dentro da outra. Além disso, há um pequeno erro de digitação no nome da função de verificação: você escreveu verificar_vendedor em vez de verificar_vencedor.
Abaixo, deixo o seu código organizado com a indentação, quebras de linha e o nome da função corrigidos, garantindo que ele rode sem erros de sintaxe caso outros alunos queiram testar:
import random
opcoes = ['pedra', 'papel', 'tesoura']
def escolha_computador():
return random.choice(opcoes)
def jogada():
while True:
usuario = input('Escolha: pedra, papel ou tesoura? ').lower()
if usuario in opcoes:
return usuario
else:
print('Opção inválida! Digite apenas pedra, papel ou tesoura.\n')
def verificar_vencedor(usuario, computador):
if usuario == computador:
print(f'Computador escolheu: {computador}\n Empate!')
elif(
(usuario == 'pedra' and computador == 'tesoura') or
(usuario == 'papel' and computador == 'pedra') or
(usuario == 'tesoura' and computador == 'papel')
):
print(f'Computador escolheu: {computador}\n Você Venceu!')
else:
print(f'Computador escolheu: {computador}\n Você perdeu!')
def jogar():
computador = escolha_computador()
usuario = jogada()
verificar_vencedor(usuario, computador)
jogar()
Como sugestão de melhoria para você continuar aprimorando esse projeto, que tal adicionar a opção de jogar várias rodadas seguidas?
Você pode envolver as chamadas dentro da função jogar() em um laço de repetição while True, e ao final verificar se o jogador deseja continuar. Exemplo prático de como essa função ficaria:
def jogar():
while True:
computador = escolha_computador()
usuario = jogada()
verificar_vencedor(usuario, computador)
continuar = input('\nDeseja jogar novamente? (s/n): ').lower()
if continuar != 's':
print('Obrigado por jogar! Até a próxima.')
break
Dessa forma o seu jogo fica muito mais dinâmico, pois o usuário não precisará executar o script novamente toda vez que quiser uma revanche contra o computador.
Espero que possa ter lhe ajudado!