Não consigo reproduzir na tela o passo a passo. Só aparece na tela as tentativas no final
Não consigo reproduzir na tela o passo a passo. Só aparece na tela as tentativas no final
<meta charset="UTF-8">
<script>
function pulaLinha() {
document.write("<br>");
}
function mostra(frase) {
document.write("<big>" + frase + "</big>");
pulaLinha();
}
function sorteia (n){
return Math.round(Math.random() * n);
}
var numeroPensado = sorteia(10);
console.log(numeroPensado);
cont = 1;
while (cont <= 3){
var chute = parseInt(prompt("Digite um número"));
if (chute == numeroPensado){
alert("Acertou!!!");
break;
}else{
alert("Errou, tente novamente!!!");
}
cont++;
}
mostra("Fim!!!");
</script>
Olá, Fiaschi! Tudo bem contigo?
Rodei seu código e como não achei erro, quero entender melhor sua dúvida ;-)
Quer mudar o comportamento do código?
Diz aqui a sua ideia para poder melhor te ajudar.
Ficamos no aguardo!
O que acontece é que quando faço uma tentativa, ela não aparece a mensagem na tela, só aparece o pop-up solicitando a nova tentativa. Somente depois das tentativas é que aparece os os prints com as mensagens.
Fala, Fiaschi!!!
Então vamos lá!!!
Para que a ocorra essa impressão na tela, o While não seria uma boa opção e nem mesmo o for. Quando rodamos o código ele fica esperando que algo seja digitado para que tenha um resultado da lógica, logo ele processa e manda para imprimir na tela quando acabar o looping.
Haveria outra forma? Sim, mas teríamos que entrar em outros conceitos que não cabem agora. Conforme for avançando nos cursos, serão abordados ;-)
Neste caso, vamos dar uma turbinada no temos em mãos
Neste caso eu coloquei um segundo if
para que possa imprimir o número de tentativas quando o usuário acertar o número. Disse que se o contador for igual a 1 ou 2 ou 3 ele possa imprimir qual tentativa foi junto com o acerto.
if (chute == numeroPensado) {
if (cont == 1 || cont == 2 || cont == 3) {
mostra("Acertou na sua " + cont + "º tentativa!!! É isso aí :-)");
break;
}
Seguindo, eu deixei o alert
para cada erro e acrescentei uma mensagem para cada erro contabilizando a quantidade desses erros. A ideia foi a mesma que usei nos acertos. Como eu quis imprimir uma frase para cada erro, abri três ifs
} else if (cont == 1) {
alert("Errou!");
mostra("Seu PRIMEIRO chute foi " + chute + ". Errou na primeira rs");
} else if (cont == 2) {
alert("Errou!");
mostra("Seu SEGUNDO chute foi " + chute + ". Teve uma segunda chance!!!");
} else if (cont == 3) {
alert("Errou!");
mostra("Seu TERCEIRO chute foi " + chute + ". Acabaram suas chances!!! :-(");
}
Espero ter ajudado, Fiaschi!
Bons estudos e vamos em frente!