Fiz como orientado na aula, porém o console do chrome não me mostra o número secreto, tentei no firefox e lá funciona normalmente, não sei como resolver este problema, gostaria de ajuda, por favor.
Fiz como orientado na aula, porém o console do chrome não me mostra o número secreto, tentei no firefox e lá funciona normalmente, não sei como resolver este problema, gostaria de ajuda, por favor.
Olá, Yago. Tudo bem?
Isso acontece porque o navegador não atualiza o console até que os diálogos de prompt
e alert
sejam finalizados, atrasando a exibição do console.log
. Mesmo que ele esteja tecnicamente sendo chamado no momento certo, o navegador só "libera" a atualização no console depois que os diálogos modais (alert e prompt) são fechados.
Para resolver isso e garantir que o console.log
seja exibido imediatamente após o número secreto ser gerado, você pode adicionar um pequeno atraso na execução do prompt
com setTimeout
, assim o navegador terá tempo para processar e exibir o console.log
antes de abrir o diálogo prompt.
O código fica assim utilizando o setTimeout
:
alert("olá mundo");
let numeroMaximo = 5;
let numeroSecreto = parseInt(Math.random() * numeroMaximo + 1);
let chute;
let tentativas = 1;
console.log(`Número secreto: ${numeroSecreto}`);
setTimeout(() => {
while (chute != numeroSecreto) {
chute = parseInt(prompt(`escolha um número de 1 e ${numeroMaximo}`));
console.log(`Número secreto: ${numeroSecreto}`);
if (chute == numeroSecreto) {
break;
} else {
if (chute > numeroSecreto) {
alert(`o número é menor que ${chute}`);
} else {
alert(`o número é maior que ${chute}`);
}
tentativas++;
}
}
let palavraTentativa = tentativas > 1 ? "tentativas" : "tentativa";
alert(
`Boaaa! você acertou, o número secreto é o ${numeroSecreto} com ${tentativas} ${palavraTentativa}`
);
}, 100); // Adiciona um atraso de 100 milissegundos
Espero ter ajudado.
Com o código original na primeira vez não funciona mas depois que vc executa o jogo uma primeira vez ai nas seguintes o console log funcionou aqui.