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

Respostas diferentes - código longo

Olá pessoal, eu quis criar respostas diferentes para cada tentativa. Mas achei que o código ficou longo demais. O que eu poderia ter feito para encurtar esse código? Obrigada.

<meta charset="UTF-8">


<script>

    function pulaLinha () {

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

    function mostra (frase) {

        alert(frase);
        pulaLinha ();

    }

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


    var numeroTentativas = 1;


    while (numeroTentativas <= 3) {

        var chute = parseInt(prompt("Qual o seu chute de 1 a 10?"));


        if (chute != numeroPensado && numeroTentativas == 1) {

            mostra("Você errou! Tem mais 2 tentativas.");

        } else { 

        if (chute != numeroPensado && numeroTentativas == 2) {

            mostra("Você errou novamente. Você tem apenas mais 1 tentativa.");

           } else {


         if (chute != numeroPensado && numeroTentativas == 3 ) {

            mostra("Você errou. Acabaram suas tentativas.") ;
         } else {

         if (chute == numeroPensado){

            mostra("Você acertou!! O número pensado foi " + numeroPensado);
            break; 
         } }
           }
           }         

             numeroTentativas++; 

     }    


</script>
3 respostas
solução!

Olá, Lia.

O que você poderia fazer para deixar seu código mais limpo seria modularizar. Isso significa, basicamente, criar funções para fazer parte do código.

Você poderia criar uma função chamada "mostraErro", e nela vc passa a quantidade de tentativas que o usuário já fez.

function mostraErro(n) {
    if (n == 1) {
        mostra("Você errou! Tem mais 2 tentativas.");
    } else { 
        if (n == 2) {
            mostra("Você errou novamente. Você tem apenas mais 1 tentativa.");
        } else {
            if (n == 3 ) {
                mostra("Você errou. Acabaram suas tentativas.") ;
            }
        }
    }
}

Depois, seu código principal pode ficar desse jeito:

if (chute != numeroPensado) {
    mostraErro(numeroTentativas);
} else { 
    mostra("Você acertou!! O número pensado foi " + numeroPensado);
    break;
}

Dessa maneira vc aumenta a legibilidade (fica fácil de entender o que está sendo feito) do código e até a reusabilidade (vc pode usar a msm função de exibir o erro em outro lugar do código sem precisar escrever tudo de novo).

Uau! Gostei da alternativa. Obrigada

Que bom que gostou! Bons estudos!