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

DUVIDA JOGO ADIVINHA

Oi pessoal, se alguém puder me ajudar. O meu código está funcionando com as três tentativas, porém só é mostrado se acertou ou errou no final da terceira tentavida e não após cada tentativa. Se alguém puder me ajudar, não encontro onde está o problema. Desde já agradeço.

Segue o código:

10 respostas
<meta charset="UTF-8">

<script> 

    function pulaLinha(){
        document.write("<br>");
    }

    function mostra (frase){
        document.write(frase);
        pulaLinha();
    }

    function sorteia(n){
        Math.round(Math.random() * n);
    }     


    var numeroPensado = sorteia(10);
    var tentativas = 1;


    while(tentativas <= 3) {

        var chute = parseInt(prompt("Digite o seu chute de 0 a 10."));

        if(chute == numeroPensado) {

            mostra("PARABÉNS!! Você acertou, o número pensado foi " + numeroPensado);
            break;

             } else {

                 mostra("QUE PENA!! Tente outra vez");
         }

        tentativas++;
     }


    mostra("FIM!");


</script> 
<meta charset="UTF-8">

<script> 

    function pulaLinha(){
        document.write("<br>");
    }

    function mostra (frase){
        document.write(frase);
        pulaLinha();
    }

    function sorteia(n){
        Math.round(Math.random() * n);
    }     


    var numeroPensado = sorteia(10);
    var tentativas = 1;


    while(tentativas <= 3) {

        var chute = parseInt(prompt("Digite o seu chute de 0 a 10."));

        if(chute == numeroPensado) {

            mostra("PARABÉNS!! Você acertou, o número pensado foi " + numeroPensado);
            break;

             } else {

                 mostra("QUE PENA!! Tente outra vez");
         }

        tentativas++;
     }


    mostra("FIM!");


</script> 

Olá, Camilla. Tudo bem?

Você poderia deixar o link do seu projeto ou o código para que eu possa verificar o erro?

Fico no aguardo!

Oi Camila, a primeira mensagem foi sem o código, já postei ele acima, agradeço seu retorno.

Olá, Camilla! Você pode utilizar o alert() para exibir a informação

<meta charset="UTF-8">

<script>
  function pulaLinha() {
    document.write("<br>");
  }

  function mostra(frase) {
    document.write(frase);
    pulaLinha();
  }

  function sorteia(n) {
    return Math.round(Math.random() * n);
  }
  var numeroPensado = sorteia(10);
  var tentativas = 1;
  while (tentativas <= 3) {
    var chute = parseInt(prompt("Digite o seu chute de 0 a 10."));
    if (chute == numeroPensado) {
      mostra("PARABÉNS!! Você acertou, o número pensado foi " + numeroPensado);
      break;
    } else {
      alert("QUE PENA!! Tente outra vez", numeroPensado);
    }
    tentativas++;
  }
  mostra("FIM!");
</script>

Espero que as informações tenham ajudado. Bons estudos!

Oi Camila, bom dia, obrigada pela sugestão, porém gostaria que fosse escrito na tela após cada tentativa (como no curso - uma tentativa e imediatamente a resposta escrita na tela), porém não encontro onde esta o problema. Obrigada

Entendi, Camilla.

O problema é que o método prompt(), alert() e confirm() apresentam algumas características. Uma delas é que interrompem tudo que é executado até ser finalizado e por conta disso há esse problema na execução do seu código e ele mostra as mensagens apenas após a interrupção do loop.

Espero que as informações tenham ajudado.

Bons estudos!

Oi Camila, obrigada pelo seu retorno. Me ajudou bastante a entender esses comandos, obrigada. Na aula, o código do professor funciona da maneira que estou tentando fazer, por isso que não entendi o porque o meu também não estava funcionando.

solução!

Ah, outra coisa, Camilla!

Essas funções prompt() e alert() tem esse comportamento em outros navegadores. Você pode testar com o Mozilla que funciona da maneira adequada. Tudo bem?

Sua lógica está correta.

Essas questões de navegador também interferem porque cada um tem algumas especificidades.

Espero ter ajudado.

Abraços!

Ah Ok, obrigada Camila, fiquei feliz em saber que está tudo certo com o código.