1
resposta

Minha solução com While

Fiz assim:

print('Bem vindo ao jogo de adivinhação')
print('*'*35)

numero_secreto = 42
tentativa = 1 # Inicia-se em 1 pois é a primeira tentativa.

while True:
    chute = int(input(f'Digite sua {tentativa}º tentativa, Nº: '))
    acertou = numero_secreto == chute  # Variável acertou é responsável pelo acerto do chute.
    maior = chute > numero_secreto
    menor = chute < numero_secreto
    if acertou:
        print('Você acertou!')
        break
    else:
        print('Você errou!')
        if maior:
            print('O seu chute foi maior que o número sorteado. Tente de novo\n')
        elif menor:
            print('O seu chute foi menor que o número sorteado. Tente de novo\n')
    tentativa+=1 #Adiciona-se mais um caso o usuário não acerte nessa tentativa.
print(f'Fim do jogo!\nTentativas = {tentativa}')
1 resposta

Olá, Renan.

Tudo bem?

Pelo que vejo, você fez um ótimo trabalho implementando a lógica do jogo! Sua solução está correta e bem organizada. Você criou as variáveis acertou, maior e menor para cada condição e testou o chute, imprimindo uma mensagem apropriada para cada caso.

A única sugestão que eu faria seria adicionar um limite para o número de tentativas, para que o jogo não continue indefinidamente se o usuário não conseguir adivinhar o número. Você poderia fazer isso adicionando uma variável tentativas_maximas e verificando se tentativa é menor ou igual a tentativas_maximas no seu loop while.

Aqui está um exemplo de como você poderia fazer isso:

tentativas_maximas = 10
while tentativa <= tentativas_maximas:
    # o resto do seu código aqui
    if acertou:
        print('Você acertou!')
        break
    elif tentativa == tentativas_maximas:
        print('Você não acertou após 10 tentativas. Fim do jogo.')
    else:
        # o resto do seu código aqui

Espero ter ajudado e bons estudos!