1
resposta

Resolução: pedra papel tesoura

import random

print('Bem vindo ao pedra papel tesoura digital !')

choice_user = (input('Digite sua escolha: '))


def computer_choice():

    alternativas = ['rock', 'scissors', 'paper']
    choices = random.choice(alternativas)
    computer_ch = choices

    if choice_user == computer_ch:
        print('Deu empate')
    elif ((choice_user == 'paper' and computer_ch == 'rock') or 
          (choice_user == 'rock' and computer_ch == 'scissors') or 
          (choice_user == 'scissors' and computer_ch == 'paper')):
        print('Usuário venceu!, computador perdeu.')
    else:
        print('Usuário perdeu, computador ganhou !')


    print(computer_ch)
    print(type(choice_user))
    print(type(computer_ch))

computer_choice()
1 resposta

Olá, Matheus!

Parabéns por desenvolver a lógica do jogo Pedra, Papel e Tesoura! Seu código está muito bem estruturado e a lógica de vitória/derrota, usando os operadores lógicos, está correta e funciona perfeitamente.

Sugestões de Melhoria

Eu notei apenas um detalhe que pode tornar seu código mais robusto e evitar erros, especialmente na captura da entrada do usuário:

Padronização da Entrada (Normalização): A entrada do usuário (choice_user) pode ser digitada de diversas formas (ex: 'Rock', 'PAPER', 'rock '). Se o usuário não digitar exatamente 'rock', 'scissors' ou 'paper' em minúsculo, o jogo não funcionará corretamente.

O ideal é normalizar o texto do usuário, convertendo-o para minúsculo e removendo espaços em branco extras, antes de fazer a comparação.

import random
print('Bem vindo ao pedra papel tesoura digital !')

# 1. Normalizar a entrada do usuário
choice_user = input('Digite sua escolha (rock, paper, or scissors): ').lower().strip()

def computer_choice():
    
    alternativas = ['rock', 'scissors', 'paper']
    # A variável choices já armazena a escolha do computador, 
    # então pode ser usada diretamente.
    computer_ch = random.choice(alternativas) 

    # 2. Adicionar uma verificação inicial de entrada válida (opcional, mas recomendado)
    if choice_user not in alternativas:
        print(f'Entrada inválida: {choice_user}. Por favor, escolha entre rock, paper ou scissors.')
        return # Encerra a função se a entrada for inválida

    print(f'Sua escolha: {choice_user}')
    print(f'Escolha do computador: {computer_ch}')
    
    # 3. Lógica de comparação (Correta)
    if choice_user == computer_ch:
        print('Deu empate')
    elif ((choice_user == 'paper' and computer_ch == 'rock') or 
          (choice_user == 'rock' and computer_ch == 'scissors') or 
          (choice_user == 'scissors' and computer_ch == 'paper')):
        print('Usuário venceu!, computador perdeu.')
    else:
        print('Usuário perdeu, computador ganhou !')

# A função computer_choice() já exibe o resultado, 
# então podemos chamar ela diretamente.
computer_choice() 

Seu código está ótimo e a lógica está perfeita! Continue programando!