1
resposta

[Projeto] [PROJETO] Jogo Adivinha v1.0 (vou melhorando a medida que for aprendendo)

Antes de entrar no final do curso onde eles ensinam a definir, eu busquei o conhecimento para usar as funções, pois algumas coisas me incomodavam, tais como:

  • Não ter um retorno da seleção errada de nível
  • Perder pontos ao digitar um número errado
  • Não haver derrota por perda de pontos
  • Não especificar qual foi o motivo da derrota

Nesse viés, acabei gerando este código.

Faço um grande pedido aos colegas conhecedores da lingua que abram os pitacos sem limites! Apresentem melhorias que podem ser feitas.

Obrigado a todos e parabéns para a equipe Alura.

import random

# Jogo de Adivinhação v1.0
# Alura - Python: Começando com a Linguagem
# Aluno: Leonard Barbosa

def jogar():
    print('\n')
    print('*********************************')
    print('Bem vindo ao jogo de Adivinhação!')
    print('*********************************')
    print('\n')
    escolha_nivel()

# nível dificuldade
def escolha_nivel():
    global tentativas
    print('Escolha um nível de dificuldade.')
    print('(1) Fácil | (2) Médio | (3) Difícil')
    nivel = int(input('Digite seu nível de dificuldade: '))
    if (nivel >= 1 or nivel <= 3):
        if (nivel == 1):
            tentativas = 10
            jogada()
        elif (nivel == 2):
            tentativas = 5
            jogada()
        elif (nivel == 3):
            tentativas = 3
            jogada()
        else:
            print('Não existe este nível de dificuldade')
            return escolha_nivel()

# Jogada
def jogada():
    numero_secreto = random.randint(1, 30)
    pontos = 100
    for rodada in range(1, tentativas + 1):
        print('\nTentativa {} de {}'.format(rodada, tentativas))
        chute = int(input('Digite um número entre 1 e 30: '))
        print('Você digitou: ', chute)

        if (chute < 1 or chute > 30):
            print('Você precisa digitar um número entre 1 e 30.')
            return jogada()

        # variáveis loop
        acertou = numero_secreto == chute
        maior = chute > numero_secreto
        menor = chute < numero_secreto

        # funções loop
        if (acertou):
            print('\n**************************************')
            print('Você Acertou!')
            print('O número secreto era: ', numero_secreto)
            print(f'Sua pontuação final foi de {pontos} pontos!')
            print('**************************************')
            break
        else:
            if (maior):
                print('Você errou! O seu chute foi maior que o número secreto!')
            elif (menor):
                print('Você errou! O seu chute foi menor que o número secreto!')
                pontos_perdidos = abs(numero_secreto - chute)
                pontos = pontos - pontos_perdidos

        if (pontos <= 0):
            print('\n**************************************')
            print('Você perdeu por PONTOS!')
            print('O número secreto era: ', numero_secreto)
            print('Sua pontuação foi de {} pontos'.format(pontos))
            print('**************************************')
            break

        if (rodada == tentativas):
            print('\n**************************************')
            print('Você perdeu por TENTATIVAS!')
            print('O número secreto era: ', numero_secreto)
            print('Sua pontuação foi de {} pontos'.format(pontos))
            print('**************************************')
            break

if(__name__ == "__main__"):
    jogar()    
1 resposta

Olá Aprendiz, tudo bem com você?

Meus parabéns pela implementação do código, fico feliz que tenha compartilhado-o com a comunidade do fórum Alura. Sua dedicação e empenho é muito importante para o seu desenvolvimento como pessoa programadora.

Gostaria de aproveitar a oportunidade e sugerir uma implementação para o seu código. Podemos implementar no cabeçalho com o uso da multiplicação de strings, quando queremos que uma determinada string seja repetida basta multiplicarmos ela. Sabendo disso, podemos implementar no cabeçalho do seu código conforme apresentado abaixo.

def jogar():
    print('\n')
    print(33 * '*')
    print('Bem vindo ao jogo de Adivinhação!')
    print(33 * '*')
    print('\n')
    escolha_nivel()

No código acima, a string '*' será repetida 33 vezes. Após a implementação salve o arquivo e execute-o.

Caso queira explorar mais funções sobre o uso do asterisco em python, além de multiplicar caracteres, recomendo a leitura do seguinte artigo:

O conteúdo recomendado acima está em inglês, o uso da língua inglesa é bem comum na área de tecnologia, mas não se preocupe, caso não tenha afinidade com essa linguagem, recomendo que utilize o tradutor do navegador para uma melhor compressão.

Não hesite em voltar ao fórum para continuar aprendendo e interagindo com a comunidade.

Espero ter lhe ajudado. Fico à disposição.

Abraços e bons estudos.

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!