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

[Dúvida] (Duvida) Sobre o numero de tentativas

Então no meu codigo quando eu vou digitar o numero ele sai sem o numero de tentativas aparece o seguinte texto:


bem vindo ao jogo de adivinhação


Digite o seu número: 2 Você Digitou 2 Você errou! O seu chute foi menor que o número secreto.

Process finished with exit code 0 e acaba por ai eu nao consigo continuar tentando até a terceira tentativa numero_secreto = 42 total_de_tentativas = 1

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("Você deve digitar um número entre 1 e 100!")
    continue

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

if (acertou):
    print("Você acertou!")
    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.")
    rodada = rodada + 1

print("Fim do jogo")

2 respostas
solução!

Grande Pedro. Tudo certo?

Pelo que se pode perceber em se baseando no código descrito acima, o número de tentativas do jogo foi inicializado com o valor 1:

total_de_tentativas = 1

E, nesse caso como o jogo se baseia na iteração desse número de tentativas, o laço de repetição for inicia com 1 e vai até o valor do número de tentativas que foi inicializado mais 1, ou seja o range do laço for começa com o valor 1 e vai até o valor 2. Mas como o último valor é desconsiderado nessa contagem, então só há uma iteração nesse laço.

Caso você deseje que o seu programa dê 3 oportunidades de jogada, é necessário fazer usando uma das duas formas:

1 - Seguindo a inicialização da variável total_de_tentativas recebendo o valor 1 e seguindo a sua lógica ao usar o laço de repetição.

total_de_tentativas = 1

for rodada in range(1, total_de_tentativas + 3):
    print(f"Tentativa {total_de_tentativas} de {rodada}.")
    total_de_tentativas += 1

2 - Seguindo a inicialização da variável total_de_tentativas recebendo o valor 0.

total_de_tentativas = 0

for rodada in range(3):
    print(f"Tentativa {total_de_tentativas + 1} de {rodada + 1}.")
    total_de_tentativas += 1

Bom, Pedro, existem várias formas de implementar essa solução para esse código. Ah! Eu me preocupei em resolver somente a questão do número de iterações que você gostaria que o jogo tivesse. Quanto ao resto da lógica para implementar esse exemplo dentro do código completo, fica sob sua responsabilidade. Eu sei que você consegue. Vai e arrebenta.

Espero que ajude.

Obrigado Adriano aJudou demais