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

[Dúvida] Numero de tentativas incorreto

Estou com um problema, ao acertar o numero secreto, as vezes aparece um numero de tentativas muito alto, um numero aleatorio,, conforme imagem abaixo, como corrigir isso?

Insira aqui a descrição dessa imagem para ajudar na acessibilidadeSegue codigo

alert("Boas vindas ao jogo do número secreto");
let numeroSecreto = parseInt(Math.random() *30 + 1);
let chute;
let tentativas = 1;

while (chute != numeroSecreto){
    chute = prompt("Escolha um número entre 1 e 30");
    if (numeroSecreto == chute){
       break;
    }
    else{
        if (numeroSecreto > chute){
            alert(`O número secreto é maior que ${chute}`);
        }
        else{
            alert(`O número secreto é menor que ${chute}`);
        }
        tentativas ++;
    }
}
let palavraTentativa = tentativas > 1 ? 'tentativas' : 'tentativa';
alert(`Isso ai! Você descobriu o número secreto ${numeroSecreto} com ${tentativas} ${palavraTentativa}.`);

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

2 respostas
solução!

Oi, Leonardo! Tudo bem?

O problema ocorre pois no código estamos comparando o número secreto, que é uma variável numérica, com o resultado da função prompt, que retorna uma string. No JavaScript, a comparação entre tipos diferentes pode levar a resultados inesperados.

Dessa forma, para corrigir o problema, podemos utilizar a função parseInt() para converter o valor digitado pelo usuário em um número inteiro. Assim, a comparação será feita corretamente.

Precisamos então alterar o seguinte trecho do código:

chute = prompt("Escolha um número entre 1 e 30");

Deixando-o da seguinte forma:

chute = parseInt(prompt("Escolha um número entre 1 e 30"));

Dessa maneira, o valor digitado pelo usuário será convertido para um número inteiro antes de ser comparado com o número secreto.

Espero ter ajudado! Caso tenha ficado alguma dúvida, sinta-se à vontade em comunicar, estou à disposição!

Um forte abraço e bons estudos!

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

Deu certo, muito obrigado