Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Como faço usando for ?

Oi então, fiz o código com while e deu certo, mas fui tentar com o for e não coseguia fazer ele voltar a perguntar oq deu de errado?

CÓDIGO COM WHILE:

<meta charset="UTF-8">

<script>

    function pulaLinha() {

        document.write("<br>");
        document.write("<br>");
}

    function mostra(frase) {

        document.write(frase);
        pulaLinha();
}

var numeroPensado = Math.round(Math.random() * 10);

var tentativas = 1;
var maximo = 3;
var nome = prompt("Olá, qual seu nome");

while(tentativas <= maximo) {

    var chute = parseInt(prompt("Digite um numero de 1 a 10 e tente acertar oq pensei"));

    if(chute == numeroPensado) {

        mostra("Correto "+nome+", a resposta realmente era " + numeroPensado);
        break;

    } else {

        mostra("Erro");
    }

    tentativas++;
}

mostra("Que a força esteja contigo!");

</script>

ah e eu ainda não entendi como faz looping, tipo deu certo, mas pq? Como ele continua perguntado se eu errar? Socorroo não to conseguindo entender essa etapa !!!

CÓDIGO NÃO FUNCIONAL COM FOR:

<meta charset="UTF-8">

<script>

function pulaLinha() { 

    document.write("<br>");
    document.write("<br>");
}

function mostra(frase) {

    document.write(frase);
    pulaLinha();
}

var numPensado = Math.round(Math.random() * 10);
var maximo = 3;

for (var tentativa = 1; tentativa <= maximo; tentativa = tentativa + 1); {

    var chute = parseInt (prompt ("Digite um número de 1 a 10"));

    if (chute != numPensado) {
    mostra ("Parabéns, você acertou!");
    chute = maximo;

} else {

    mostra ("Vixi, você errou, tente novamente por mais 3 vezes ");

        }
    }

mostra ("FIM");

</script>
1 resposta
solução!

Fala Davyd, Beleza?

Vou tentar te explicar como funciona a ideia do loop.

Copia o código e cola no teu editor. Acho que ficará mais fácil de entender porque tentei colocar as etapas nos comentários no próprio código.

<meta charset="UTF-8">

<script>

    function pulaLinha() {

        document.write("<br>");
        document.write("<br>");
}

    function mostra(frase) {

        document.write(frase);
        pulaLinha();
}

var numeroPensado = Math.round(Math.random() * 10);

var tentativas = 1;
var maximo = 3;
var nome = prompt("Olá, qual seu nome");

// Aqui começa o laço de repetição (loop) while
// Lógica na nossa lingua: enquanto(tentativas for menor ou igual ao máximo faça:)
// TODOS os código dentro das {} do while serão repetidos até que o break seja ativado ou que a condição para repetição seja atendida
while(tentativas <= maximo) {

    // Pediremos ao usuário, atráves da função prompt, um número de 1 a 10 - e já vamos converter em inteiro com a função parseInt
    // Esse número é armazenado na variável chute
    var chute = parseInt(prompt("Digite um numero de 1 a 10 e tente acertar oq pensei"));

    // Aqui começa a verificação de você digitou o numero que foi sorteado pelo computador, e armazenado na variável numeroPensado
    // Lógica na nossa lingua: se(chute for igual ao numeroPensado faça:)
    if(chute == numeroPensado) {

        // se seu chute foi igual ao numeroPensado esse bloco será executado
        // a aplicação irá chamar a função mostra e logo após rodará o break, forçando a parada do loop while
        // o break faz todo bloco do while parar
        mostra("Correto "+nome+", a resposta realmente era " + numeroPensado);
        break;

        // o else serve para dizer: caso a condição do IF acima não seja atendida, então faça esse bloco aqui embaixo
    } else {

        // irá mostrar o erro porque o chute não foi igual ao numeroPensado, entende?
        mostra("Erro");
    }

    // aqui está sendo incrmentado 1 a variavel que controla a execução do while
    // há a necessidade desse controlador pois se não foi implementado o while irá executar eternamente
    // lembra que no começo do while nós começando usando: enquanto(tentativas for menor ou igual ao maximo faça) ?
    // é exatamente essa variável que deixará você errar 3x até que ela será maior que o máximo e o while irá parar
    tentativas++;
}

mostra("Que a força esteja contigo!");

</script>

Sobre o mesmo código, com o for, segue abaixo comentado.

Aconselho colocar no editor para verificar melhor.

<meta charset="UTF-8">

<script>

    function pulaLinha() {

        document.write("<br>");
        document.write("<br>");
    }

    function mostra(frase) {

        document.write(frase);
        pulaLinha();
    }

    var numPensado = Math.round(Math.random() * 10);
    console.log(numPensado);
    var maximo = 3;

    // aqui você colocou o ; no final do for porém, não é uma declaração... não precisa do ;
    // na verdade, hoje em dia, não é necessário o ; no javascript para o código ser executado
    // o ideal é que voce mantenha uma linha de codigo. se for usar o ;, deve-se codar sempre usando
    for (var tentativa = 1; tentativa <= maximo; tentativa = tentativa + 1) {

        var chute = parseInt(prompt("Digite um número de 1 a 10"));

        // essa verificação estava trocada.
        // != significa 'diferente'
        if (chute == numPensado) {
            mostra("Parabéns, você acertou!");
            // a variável que controla o for é a tentativa
            // forçando que ela seja igual ao maximo + 1 ela será maior que o maximo e o for irá parar de executar
            tentativa += maximo;

        } else {

            mostra("Vixi, você errou, tente novamente por mais 3 vezes ");

        }
    }

    mostra("FIM");

</script>

Espero ter ajudado.

Abraço.