1
resposta

[Projeto] Pedra, Papel, Tesoura

import os
import random

def check(num):
    if not num.isdigit():
        print('Você deve usar somente números')
        exit()
    elif int(num) <1 or int(num) > 3:
        print('Escolha um número de 1 a 3!')
        exit()
    else:
        return

def computer_choice():
    computer_num = random.choice(range(1,4))

    return computer_num


def rodada(play1_choice,comp_choice):
    
    options = ('PEDRA','PAPEL','TESOURA')

    emp = 'Empate!'
    win = 'Você Venceu!'
    loss = 'Você Perdeu'
    
    if play1_choice == comp_choice:
        print(f'\n PLAYER 1 >>> {options[play1_choice-1]}   x   {options[comp_choice-1]} <<< COMPUTADOR')
        print(f'{emp}')

    elif play1_choice == 1 and comp_choice == 3:
        print(f'\n PLAYER 1 >>> {options[play1_choice-1]}   x   {options[comp_choice-1]} <<< COMPUTADOR')
        print(f'{win}')

    elif play1_choice == 2 and comp_choice == 1:
        print(f'\n PLAYER 1 >>> {options[play1_choice-1]}   x   {options[comp_choice-1]} <<< COMPUTADOR')
        print(f'{win}')

    elif play1_choice == 3 and comp_choice == 2:
        print(f'\n PLAYER 1 >>> {options[play1_choice-1]}   x   {options[comp_choice-1]} <<< COMPUTADOR')
        print(f'{win}')
    else:
        print(f'\n PLAYER 1 >>> {options[play1_choice-1]}   x   {options[comp_choice-1]} <<< COMPUTADOR')
        print(f'{loss}')
       
    return
    

os.system('cls')
print('<<<<<<<<<<<<<<<<<<<<<<   JOKEMPO   >>>>>>>>>>>>>>>>>>>>>\n ' \
    '1-Pedra \n ' \
    '2-Papel \n ' \
    '3-Tesoura \n')


play1_num = input('Digite o número de uma das opções acima: ')

check(play1_num)
computer_num = computer_choice()
rodada(int(play1_num),int(computer_num))
1 resposta

Olá, Kelvin! Como vai?

Parabéns pela resolução da atividade!

Observei que você explorou o random.choice para gerar a jogada do computador com Python, utilizou muito bem a condição if/elif/else para definir os resultados e ainda compreendeu a importância da validação de entrada para garantir que o usuário digite valores corretos.

Uma dica interessante para o futuro é simplificar a lógica de vitória usando um dicionário que mapeia as condições. Assim:

def rodada(play1_choice, comp_choice):
    options = ('PEDRA', 'PAPEL', 'TESOURA')
    resultados = {
        (1, 3): 'Você Venceu!',
        (2, 1): 'Você Venceu!',
        (3, 2): 'Você Venceu!'
    }

    print(f'\n PLAYER 1 >>> {options[play1_choice-1]}   x   {options[comp_choice-1]} <<< COMPUTADOR')

    if play1_choice == comp_choice:
        print('Empate!')
    elif (play1_choice, comp_choice) in resultados:
        print(resultados[(play1_choice, comp_choice)])
    else:
        print('Você Perdeu')

Isso faz com que o código fique mais enxuto e fácil de manter.

Alguns materiais podem estar em inglês, mas é possível compreendê-los usando o recurso de tradução de páginas do próprio navegador.

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!