1
resposta

Jogo da adivinhação. Solução.

alert('Sejam bem vindo ao jogo do conhecimento');
let numeroSecreto =8;
let chute 

//Enquanto chute for diferente que numero secreto.

while(chute!= numeroSecreto){
     chute = prompt('Digite um numero de 0 a 10');
     

        if(chute==numeroSecreto){
            alert(`isso ai ! Você acertou. O número secreto é ${numeroSecreto}`);
        }else{
            if(chute>numeroSecreto){
                alert(`Chute iqual a ${chute}.chute maior que numero secreto.`)
            }else{
                alert(`Chute iqual a ${chute}.chute menor que numero secreto.`)
            }
        }
        
    }
1 resposta

Oi Cosme,

O seu código está quase perfeito 😎.

A lógica do jogo está implementada corretamente.

O problema é que a variável chute é declarada sem valor inicial.

Isso faz com que o loop while não funcione como esperado.

Para corrigir, você pode inicializar a variável chute com um valor que seja diferente de numeroSecreto.

Por exemplo, você pode usar let chute = null;.

Assim, o loop while será executado pelo menos uma vez.

Outra sugestão é usar parseInt() para garantir que o valor digitado seja um número inteiro.

Veja como ficaria o código corrigido:

alert('Sejam bem vindo ao jogo do conhecimento');
let numeroSecreto = 8;
let chute = null;

while (parseInt(chute) !== numeroSecreto) {
    chute = prompt('Digite um numero de 0 a 10');

    if (parseInt(chute) === numeroSecreto) {
        alert(`Isso ai! Você acertou. O número secreto é ${numeroSecreto}`);
    } else {
        if (parseInt(chute) > numeroSecreto) {
            alert(`Chute igual a ${chute}. Chute maior que o número secreto.`);
        } else {
            alert(`Chute igual a ${chute}. Chute menor que o número secreto.`);
        }
    }
}

🤓 Para saber mais: Documentação sobre o loop while em JavaScript

Continue praticando e explorando o mundo da programação 💪.