Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Projeto] Pedra, papel e tesoura

import random
import os

OPCOES = ["pedra", "papel", "tesoura"]

def gerar_jogada_cpu():
    jogada_cpu = random.choice(OPCOES)
    print(f"Computador escolheu: {jogada_cpu}")
    return jogada_cpu

def verificar_jogada(jogada_usuario):
    jogada_cpu = gerar_jogada_cpu()
    jogada_usuario = jogada_usuario.lower()

    if jogada_usuario == jogada_cpu:
        print("Empate!")
    elif (
        (jogada_usuario == "pedra" and jogada_cpu == "tesoura") or 
        (jogada_usuario == "papel" and jogada_cpu == "pedra") or 
        (jogada_usuario == "tesoura" and jogada_cpu == "papel")
    ):
        print("Você venceu!")
    else:
        print("Você perdeu!")

def tratar_erro(mensagem):
    input(f"{mensagem} Aperte qualquer tecla para tentar novamente. ")
    main()

def main():
    os.system("cls")
    jogada_usuario = input("Escolha: pedra, papel ou tesoura? ")

    if not OPCOES.__contains__(jogada_usuario.lower()):
        tratar_erro("Opção escolhida é inválida.")
    else:
        verificar_jogada(jogada_usuario)

if __name__ == "__main__":
    main()
2 respostas
solução!

Olá, Christian! Como vai?

Parabéns pela resolução da atividade!

Observei que você explorou o uso de listas para organizar as opções do jogo, utilizou muito bem a função random.choice para gerar a jogada do computador e ainda compreendeu a importância da validação de entrada para evitar erros durante a execução.

Uma dica interessante para o futuro é simplificar a verificação de jogadas usando um dicionário de regras. Assim:

REGRAS = {
    "pedra": "tesoura",
    "papel": "pedra",
    "tesoura": "papel"
}

def verificar_jogada(jogada_usuario):
    jogada_cpu = gerar_jogada_cpu()
    jogada_usuario = jogada_usuario.lower()

    if jogada_usuario == jogada_cpu:
        print("Empate!")
    elif REGRAS[jogada_usuario] == jogada_cpu:
        print("Você venceu!")
    else:
        print("Você perdeu!")

Isso deixa o código mais legível e fácil de expandir caso queira adicionar novas opções no futuro.

Fico à disposição! E se precisar, conte sempre com o apoio do fórum.

Abraço e bons estudos!

AluraConte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!
import random
import os

REGRAS = {
    "pedra": "tesoura",
    "papel": "pedra",
    "tesoura": "papel"
}

def gerar_jogada_cpu():
    jogada_cpu = random.choice(list(REGRAS.keys()))
    print(f"Computador escolheu: {jogada_cpu}")
    return jogada_cpu

def verificar_jogada(jogada_usuario):
    jogada_cpu = gerar_jogada_cpu()
    jogada_usuario = jogada_usuario.lower()

    if jogada_usuario == jogada_cpu:
        print("Empate!")
    elif REGRAS[jogada_usuario] == jogada_cpu:
        print("Você venceu!")
    else:
        print("Você perdeu!")

def tratar_erro(mensagem):
    input(f"{mensagem} Aperte qualquer tecla para tentar novamente. ")
    main()

def executar_jogada():
    jogada_usuario = input("Escolha: pedra, papel ou tesoura? ")
    if not list(REGRAS.keys()).__contains__(jogada_usuario.lower()):
        tratar_erro("Opção escolhida é inválida.")
    else:
        verificar_jogada(jogada_usuario)

def main():
    os.system("cls")
    executar_jogada()

if __name__ == "__main__":
    main()