Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Meu código ficou um pouco diferente da maioria, mas fiz desse jeito

Resolvi tratar os erros e implementar a a possibilidade de repetição do jogo e, também, a parte de tentativas. Se não houverem mais tentativas o jogo acaba.

from random import randint

print("Bem vindo ao jogo de adivinhação")
print("Você tem 3 tentativas")
print("Para começar, digite um numero de 0 a 20")

def tentar_novamente():
    print('Deseja tentar novamente?\n1- Sim\n2- Não')
    escolha = str(input("> "))
    if escolha == '1':
        start()
    elif escolha == '2':
        print("Programa encerrado, obrigado por usar!")
        exit()
    else:
        print("Opção inválida!")
        tentar_novamente()

def start():
    chances = 3
    numero_secreto = randint(0, 20)
    try:
        chute = int(input("> "))
        while chute != numero_secreto:

            if chute > 20:
                print(f"O numero {chute} é maior do que o permitido!")
                chute = int(input("> "))

            elif chute < 0:
                print(f"O numero {chute} é menor do que o permitido!")
                chute = int(input("> "))

            elif chute > numero_secreto:
                chances = chances - 1

                if chances <= 0:
                    print(f"Você errou e suas chances terminaram, o número secreto era {numero_secreto}. Fim de jogo :(")
                    tentar_novamente()
                else:
                    print(f"Você errou! Dica: o numero {chute} é maior que o numero secreto")
                    print(f"Tentativas restantes: {chances}")
                    chute = int(input("> "))

            else:
                chances = chances - 1
                if chances <= 0:
                    print(f"Você errou e suas chances terminaram, o número secreto era {numero_secreto}. Fim de jogo :(")
                    tentar_novamente()
                else:
                    print(f"Você errou! Dica: o numero {chute} é menor que o numero secreto")
                    print(f"Tentativas restantes: {chances}")
                    chute = int(input("> "))

        else:
            print(f"Você acertou! O numero era {chute} (chances restantes: {chances})")
            tentar_novamente()

    except ValueError:
        print("Erro: Você deve usar apenas numeros inteiros!")
        tentar_novamente()
start()
2 respostas

Boa noite, Eduardo. Tudo bem?

Parabéns!

Apenas como comentário, notei um pequeno "problema" no seu código. E ele está atrelado a def tentar_novamente.

Se escolhermos a opção 1 (Sim), o seu "menu do jogo" não aparece novamente. :)

solução!

Boa noite, Danilo, tudo certo e por aí?

Então, testei novamente o código e vi que na verdade quando você escolhe a opção 1 (Sim), ele já começa o jogo novamente, porém só não avisa que iniciou, mas se você chutar um numero ele já funciona normalmente.

Agradeço a atenção ;D

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software