1
resposta

Erro na minha versão diferenciada do desafio

Tentei fazer um sistema onde apenas existem 3 tentativas, porem em uma caso especifico, onde a primeira tentativa é um numero menor e a segunda, um maior, o meu sistema diz que o numero escrito é maior que o correto, sendo que ele não é, vou colocar imagens para ser mais claro: O numero correto é 50

print("*********************************")
print("Bem vindo ao jogo de Adivinhação!")
print("*********************************")
print("Você apenas tem 3 tentativas")

numero_secreto = 50
tentativas = 0


chute_str = input("Digite o seu número: ")
print("Você digitou: ", chute_str)
chute = int(chute_str)
acertou = numero_secreto == chute
maior = numero_secreto > chute
menor = numero_secreto < chute

if (acertou):
print("Você acertou!")
print("Fim do jogo")

if (maior):
print("O número é maior!")
tentativas = tentativas + 1
chute_str = input("Digite o seu número: ")
print("Você digitou: ", chute_str)
chute = int(chute_str)

    if (acertou):
    print("Você acertou!")
    print("Fim do jogo")

    if (maior):
    print("O número é maior!")
    tentativas = tentativas + 1
    chute_str = input("Digite o seu número: ")
    print("Você digitou: ", chute_str)
    chute = int(chute_str)

        if (acertou):
        print("Você acertou!")
        print("Fim do jogo")

        if (maior):
        print("O número é maior!")
        tentativas = tentativas + 1

        if (menor):
        print("O número é menor!")
        tentativas = tentativas + 1

        if (tentativas == 3):
        print("Suas tentativas acabaram")
        print("Fim do jogo")

    if (menor):
    print("O número é menor!")
    tentativas = tentativas + 1
    chute_str = input("Digite o seu número: ")
    print("Você digitou: ", chute_str)
    chute = int(chute_str)

        if (acertou):
        print("Você acertou!")
        print("Fim do jogo")

        if (maior):
        print("O número é menor!")
        tentativas = tentativas + 1

        if (menor):
        print("O número é maior!")
        tentativas = tentativas + 1

        if (tentativas == 3):
        print("Suas tentativas acabaram")
        print("Fim do jogo")

    if (tentativas == 3):
    print("Suas tentativas acabaram")
    print("Fim do jogo")

if (menor):
print("O número é menor!")
tentativas = tentativas + 1
chute_str = input("Digite o seu número: ")
print("Você digitou: ", chute_str)
chute = int(chute_str)

    if (acertou):
    print("Você acertou!")
    print("Fim do jogo")

    if (maior):
    print("O número é maior!")
    tentativas = tentativas + 1
    chute_str = input("Digite o seu número: ")
    print("Você digitou: ", chute_str)
    chute = int(chute_str)

        if (acertou):
        print("Você acertou!")
        print("Fim do jogo")

        if (maior):
        print("O número é maior!")
        tentativas = tentativas + 1

        if (menor):
        print("O número é menor!")
        tentativas = tentativas + 1

        if (tentativas == 3):
        print("Suas tentativas acabaram")
        print("Fim do jogo")

    if (menor):
    print("O número é menor!")
    tentativas = tentativas + 1
    chute_str = input("Digite o seu número: ")
    print("Você digitou: ", chute_str)
    chute = int(chute_str)

        if (acertou):
        print("Você acertou!")
        print("Fim do jogo")

        if (maior):
        print("O número é maior!")
        tentativas = tentativas + 1

        if (menor):
        print("O número é menor!")
        tentativas = tentativas + 1

        if (tentativas == 3):
        print("Suas tentativas acabaram")
        print("Fim do jogo")
        
        

Resultado do codigo:


Bem vindo ao jogo de Adivinhação!


Você apenas tem 3 tentativas

Digite o seu número: 12

Você digitou: 12

O número é maior!

Digite o seu número: 53

Você digitou: 53

O número é maior!

1 resposta

Olá, Pablo! Tudo bem?

O problema é que você está verificando as condições acertou, maior e menor apenas uma vez, logo após o primeiro chute. Depois disso, mesmo que o valor de chute mude, as condições não são verificadas novamente porque elas não estão sendo atualizadas dentro do seu loop de tentativas.

Além disso, você faz várias outras verificações durante o seu código que acabam sendo repetitivas.

Para corrigir isso, você precisa verificar as condições acertou, maior e menor após cada novo chute. Aqui está um exemplo de como você pode fazer isso:

print("*********************************")
print("Bem vindo ao jogo de Adivinhação!")
print("*********************************")
print("Você apenas tem 3 tentativas")

numero_secreto = 50
tentativas = 0

while tentativas < 3:
    chute_str = input("Digite o seu número: ")
    print("Você digitou: ", chute_str)
    chute = int(chute_str)

    acertou = numero_secreto == chute
    maior = numero_secreto < chute
    menor = numero_secreto > chute

    if (acertou):
        print("Você acertou!")
        break
    elif (maior):
        print("O número é menor!")
        tentativas = tentativas + 1
    elif (menor):
        print("O número é maior!")
        tentativas = tentativas + 1

if tentativas == 3:
    print("Suas tentativas acabaram")
print("Fim do jogo")

Neste código, o loop while permite ao usuário continuar dando chutes até que ele acerte o número ou até que ele use todas as suas tentativas. As condições são verificadas após cada chute, então a mensagem correta é exibida ao usuário.

Espero ter ajudado e bons estudos!

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

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