1
resposta

[Sugestão] Não importar a biblioteca inteira e usar teoria de conjuntos

from random import choice


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


def game(user: str, machine: str) -> int:
    resultados = {
        ("pedra", "tesoura"): 1,
        ("pedra", "papel"): -1,
        ("papel", "pedra"): 1,
        ("papel", "tesoura"): -1,
        ("tesoura", "papel"): 1,
        ("tesoura", "pedra"): -1,
    }

    if user == machine:
        print(f"Computador escolheu: {machine}")
        print("Empate!")
        return 0

    return resultados.get((user, machine), 0)


opcao_user = input("Escolha: pedra, papel ou tesoura? ").lower()
if opcao_user in opcoes:
    opcao_machine = choice(opcoes)

    if game(opcao_user, opcao_machine) > 0:
        print(f"Computador escolheu: {opcao_machine}\nVocê venceu! ")
    else:
        print(f"Computador escolheu: {opcao_machine}\nVocê perdeu! ")
else:
    print("Opção inválida!")
1 resposta

Oi! Como vai?

Gostei muito da forma como você estruturou o dicionário resultados para mapear os possíveis cenários. Isso deixou o código enxuto e fácil de manter. A escolha por from random import choice também mostra atenção à economia de recursos.

Uma dica interessante para o futuro é explorar o método set() para lidar com combinações. Veja este exemplo:


jogada = {user, machine}
if jogada == {"pedra", "tesoura"}:
    print("Pedra vence tesoura!")

Esse código usa set para verificar se a combinação corresponde a uma situação de vitória. Como set ignora a ordem dos elementos, ele facilita comparações entre pares.

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