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

Não funciona.

Alguem sabe, qual o erro desse programa? oq tenho que modificar, para que funcione corretamente?

<meta charset="UTF-8">
<script>
    function pulaLinha() {
        document.write("<br><br>");
    };

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

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


    var numero = parseInt(prompt("Até que numero está valendo a adivinhação? "));

    var numeroPensado = sorteia(numero);
    console.log(numeroPensado); 

    var chute = parseInt(prompt("Ok, vamos lá então, Digite o seu chute! (Vale numeros de 0 a " + Math.round(numero) + "). Você tem 3 tentativas"));

    var tent = 1;

    while(tent <= 3){

        if(chute == numeroPensado){
        mostra("Você acertou!");
        tent = 4;
        };


        if (chute > numeroPensado){
            tent++;
            var chute = parseInt(prompt("Você errou, o numero pensado por min é menor tente novamente, Digite mais um chute que nao ultrapasse " + Math.round(numero)));           
        }else{
            tent++;
            var chute = parseInt(prompt("Você errou, tente novamente, o numero pensado por min é maior, tente novamente, Digite mais um chute que nao ultrapasse " + Math.round(numero)));
        };

        };

        if(chute != numeroPensado){
        mostra("Acabaram as suas tentativas, você perdeu.");
    };
</script>
3 respostas
solução!

Eu testei aqui e identifiquei apenas 2 pontos que estão dando erro.

1º - Quando o usuário acerta, ele mostra que acertou e em seguida mostra que errou também. Se você colocar um break, quando o usuário acertar, ele vai apenas mostrar a mensagem de acerto, e parar a execução do programa. Ficaria assim o código:

if(chute == numeroPensado){
        mostra("Você acertou!");
        break;
        };

2º - O programa está dando 4 tentativas para o usuário, quando na verdade deveriam ser apenas 3. No while, é só você tirar o sinal de igual, e verificar se as tentativas são menores do que 3 para dar certo, assim:

while(tent < 3)

Espero ter ajudado.

Me ajudou sim mano, na real eu estava tentando fazer o programa antes do professor, meio q pra praticar, e nao tinha descoberto a função break ainda kk eu complementei mais o programa, e meio q apareceu mais erros, mas amanha sem sono eu resolvo eles ou posto novas duvidas.

É isso ai, eu fazia isso também, de tentar fazer antes. Por você nao saber do break, essa solução de colocar as tentativas como valendo 4, por mais que não de certo, é válida.