Não consigo reproduzir na tela o passo a passo. Só aparece na tela as tentativas no final
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
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 ifpara 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 alertpara 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!