3
respostas

o meu aparece sempre "Fim de jogo" mesmo errando ou acertando.

Gente, me tira uma dúvida, no que está errado que não está igual do professor?? eu tou quebrando cabeça aqui, HELP.

import random

print('*********************************')
print('Bem-Vindo no jogo de Adivinhação!')
print('*********************************')

numero_secreto = random.randrange(1,101) 
total_de_tentativas = 0



print('Qual nivel de dificuldade?')
print('(1) Fácil (2) Médio  (3) Difícil')

nivel = int(input('Define o nível: '))

if(nivel == 1):
    total_de_tentativas = 20 
elif(nivel == 2):
    total_de_tentativas = 10
else: 
    total_de_tentativas = 5 

for rodada in range(1, total_de_tentativas + 1):
    print("Tentativa {} de {}".format(rodada, total_de_tentativas))
    chute_str = input("Digite um número entre 1 e 100: ")
    print("Você digitou: ", chute_str)
    chute = int(chute_str)

    if(chute < 1 or chute > 100):
        print('Voce deve digitar um número entre 1 e 100!')
        continue # continuar com a proxima rodada

    acertou = chute == numero_secreto # é um tipo variável bool q pode ter 2 valores, true ou false.
    maior = chute > numero_secreto
    menor = chute < numero_secreto

    if(acertou):
        print('Voce acertou!')
        break
    else:
        if(maior):
            print('Voce errou! O seu chute foi maior do que o número secreto.')
        elif(menor):
            print('Voce errou! O seu chute foi menor do que o número secreto.')

        rodada = rodada + 1


    print('Fim de Jogo')

e a resposta da nisso:

*********************************
Bem-Vindo no jogo de Adivinhação!
*********************************
Qual nivel de dificuldade?       
(1) Fácil (2) Médio  (3) Difícil 
Define o nível: 2
Tentativa 1 de 10
Digite um número entre 1 e 100: 50
Você digitou:  50
Voce errou! O seu chute foi maior do que o número secreto.
Fim de Jogo
Tentativa 2 de 10
Digite um número entre 1 e 100: 25
Você digitou:  25
Voce errou! O seu chute foi maior do que o número secreto.
Fim de Jogo
Tentativa 3 de 10
Digite um número entre 1 e 100: 45
Você digitou:  45
Voce errou! O seu chute foi maior do que o número secreto.
Fim de Jogo
Tentativa 4 de 10
Digite um número entre 1 e 100: 42
Você digitou:  42
Voce errou! O seu chute foi maior do que o número secreto.
Fim de Jogo
Tentativa 5 de 10
Digite um número entre 1 e 100: 100
Você digitou:  100
Voce errou! O seu chute foi maior do que o número secreto.
Fim de Jogo
Tentativa 6 de 10
Digite um número entre 1 e 100:
3 respostas

Tente indentadar essa parte de baixo igual ao seu primeiro IF

if(acertou):
        print('Voce acertou!')
        break
    else:
        if(maior):
            print('Voce errou! O seu chute foi maior do que o número secreto.')
        elif(menor):
            print('Voce errou! O seu chute foi menor do que o número secreto.')

Desculpa, Não entendi...é pra indentadar esse código que vc mandou?

Oi Laíza, bom dia. A resolução do seu código é mais tranquila do que você imagina. "Fim de Jogo" está sendo printado não porque o código de fato quebrou o looping e se encerrou, mas sim porque está sendo spamado já que está dentro do For, logo, a cada passagem que ele realiza a mensagem vai te importunar no terminal. Portanto, tudo o que você precisa fazer é apagar o espaçamento, ou melhor, a indentação da sua última linha de código "print('Fim de Jogo')". Dessa forma:

import random

print('*********************************')
print('Bem-Vindo no jogo de Adivinhação!')
print('*********************************')

numero_secreto = random.randrange(1,101)
total_de_tentativas = 0



print('Qual nivel de dificuldade?')
print('(1) Fácil (2) Médio  (3) Difícil')

nivel = int(input('Define o nível: '))

if(nivel == 1):
    total_de_tentativas = 20
elif(nivel == 2):
    total_de_tentativas = 10
else:
    total_de_tentativas = 5

for rodada in range(1, total_de_tentativas + 1):
    print("Tentativa {} de {}".format(rodada, total_de_tentativas))
    chute_str = input("Digite um número entre 1 e 100: ")
    print("Você digitou: ", chute_str)
    chute = int(chute_str)

    if(chute < 1 or chute > 100):
        print('Voce deve digitar um número entre 1 e 100!')
        continue # continuar com a proxima rodada

    acertou = chute == numero_secreto # é um tipo variável bool q pode ter 2 valores, true ou false.
    maior = chute > numero_secreto
    menor = chute < numero_secreto

    if(acertou):
        print('Voce acertou!')
        break
    else:
        if(maior):
            print('Voce errou! O seu chute foi maior do que o número secreto.')
        elif(menor):
            print('Voce errou! O seu chute foi menor do que o número secreto.')

        rodada = rodada + 1

print('Fim de Jogo')