1
resposta

[Projeto] Jogo

Eu desenvolvi algo um pouco além, fiz uma melhor de 3. Nele o jogador irá jogar contra a máquina até ganhar dois jogos. Eu tive que pedir alguns auxílios de IA, para como fazer o resultado da função parar o loop, mas foi só nesse momento, o restante foi o meu desenvolvimento. E creio que se fizesse um sistema com classe e dividido em alguns arquivos, em moldes de Orientado a Objetos o código poderia ficar melhor estruturado. Segue o meu código:

import random
 
jogador = 0
pc = 0

def sistema_escolha(decisao):
    opcoes = ['P', 'A', 'T']
    sistema = random.choice(opcoes)
    global jogador, pc

    if decisao == 'P' and sistema == 'T':
        jogador += 1
        return '\nvocê venceu! Pedra quebra Tesoura.'
    elif decisao == 'P' and sistema == 'A':
        pc += 1
        return '\nvocê perdeu! Papel cobre Pedra.'
    elif decisao == 'A' and sistema == 'P':
        jogador += 1
        return '\nvocê venceu! Papel cobre Pedra.'
    elif decisao == 'A' and sistema == 'T': 
        pc += 1
        return '\nvocê perdeu! Tesoura corta Papel.'
    elif decisao == 'T' and sistema == 'A':
        jogador += 1
        return '\nvocê venceu! Tesoura corta Papel.'
    elif decisao == 'T' and sistema == 'P':
        pc += 1
        return '\nvocê perdeu! Pedra quebra Tesoura.'
    elif decisao == sistema:
        return '\nEmpate! Ambos colocaram o mesmos símbolo.'



def verificar_vencedor(jogador, pc):

    if jogador == 2: 
        return 'Parabéns! Você ganhou o jogo !'
    elif pc == 2:
        return 'Que pena! O computador ganhou o jogo !'
    
    return None



print('Este é o jogo de Pedra, Papel e Tesoura!')

while True:
    resutado_final = verificar_vencedor(jogador, pc)

    if resutado_final:
        print('#' * 30)
        print(resutado_final)
        print('#' * 30)
        break

    escolha = input('\nEscolha entre Pedra[P], Papel[A], Tesoura[T] ou Sair[S]: ').upper()
    resutado = sistema_escolha(escolha)   
    
    if escolha == 'S':
        print("Boa sorte! Até a próxima.")
        break
    if escolha not in ['P', 'A', 'T']:
        print('\nEscolha inválida! Tente novamente.')
        continue
 

    print(resutado) 
    print('\n') 
    print('-' * 30)
    print(f'\nPlacar: Jogadotor {jogador} x {pc} Computador\n') 
    print('-' * 30)
1 resposta

Olá, Vitor, tudo bem?

Ficou muito legal a sua implementação! A ideia do “melhor de 3” deixou o jogo bem mais completo. Mandou muito bem por ir além do enunciado.

Sua leitura sobre variáveis globais também está correta. Em projetos maiores elas costumam atrapalhar, mas para um código de estudo como esse, sua lógica funciona sem problema.

No geral, código bem organizado e com uma apresentação visual bem clara no console.

Bons estudos!

Sucesso

Imagem da comunidade