2
respostas

Desafio - jogo_SorteioDaAlura

E ae galera tudo bem?

Fiz o desafio do Consolidando seu conhecimento 1 e queria opiniões/sugestões a respeito do código. Acrescentei linhas a mais nele conforme a minha curiosidade foi aumentando sobre o que deixaria mais interessante o programa. Fiquei na dúvida de como eu poderia fazer para que na linha 58:

<! -- if (numeroSorte !== "" && numeroSorte !== null && !isNaN(numeroSorte)) { --> em vez de ter isNan na mesma linha, ele executasse um alerta para essa condição individualmente.

Se alguém puder ajudar com isso ou qualquer outra parte do código, eu agradeço.

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
            <title>Sorteio da Alura</title>
    </head>

    <body>

        <h1><center>JOGO DA SORTE</center></h1><hr>

        <center>Teste a sua Sorte</center>

        <center><button onclick="botao()">Clique aqui</button></center>
        <p id="button"></p>

    <script>

        function title(titulo) {
            document.write("<h1> <div style=text-align:center>" + titulo + "</div> </h1>");
        }

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

        function paragraph(paragrafo) {
            document.write("<div style=text-align:center> <p> <big>" + paragrafo + "</big> </p> </div>");
        }

        function show(mostra){
            document.write("<big>" + mostra + "</big>");
            breakline();
        }

        function raffle(n) {
            var array = [];
            for(i = 0; i < 10; i++) {
                array[i] = Math.floor( Math.random() * n) + 1;
                    console.log(array);
            }
            return Math.floor( Math.random() * n)+1;
        }

        function botao() {
            var text;
            var press=confirm("Quer testar a sua sorte?");

            if (press==true) {
                alert("Seja Bem-Vindo(a) ao \nJOGO DA SORTE");
                var nome = prompt("Digite seu nome");

                if (nome !== "" && nome !== null) {
                    var numeroSorteado = raffle(5);
                        console.log(numeroSorteado);
                    var numeroSorte = parseInt(prompt(nome + ", digite um número de 1 a 5"));

                    if (numeroSorte !== "" && numeroSorte !== null && !isNaN(numeroSorte)) {
                        title("JOGO DA SORTE <hr>");
                        paragraph(nome + ", vamos começar! <hr>");
                        alert("Será que você acertou, " + nome + "?");
                        show("O número que você digitou foi: " + numeroSorte);

                            if (numeroSorte == numeroSorteado){
                                show("Olha só " + nome + " você acertou! O número sorteado também foi o " + numeroSorteado);
                                show("Atualize a página para jogar novamente?");
                            } else {
                                show("Que pena " + nome + ", você errou! O número sorteado foi " + numeroSorteado);
                                show("Atualize a página para tentar novamente?");
                            }

                    } else {
                        alert(nome + ", como podemos jogar se você não escolheu um número?");
                        paragraph(nome + ", você não informou um número. <p>Atualize a página e vamos de novo!</p>");
                    }

                } else {
                    alert("Como podemos jogar se nem sei o seu nome?");
                    paragraph("Você não informou seu nome. <p>Atualize a página e vamos de novo!</p>");
                }

            } else {
                text = "Que pena, achei que queria arriscar!";
                document.getElementById("button").innerHTML=text;
            }
        }                
    </script>
    </body>
</html>
2 respostas

Opa Renan, tudo certo?

Passei um tempo quebrando a cabeça sobre como fazer o programa reconhecer que tipo de erro o usuário cometeu e responder da forma adequada, resolvi criando uma função que checa se o número é válido, caso não seja, ele responde de acordo com a condição correta. Também acrescentei uma condição caso o usuário ponha um número fora do limite estabelecido. No mais, só fiz umas pequenas alterações que expliquei com comentários no próprio código.

Deixei o código em outro post porque ficou bem grandinho pra caber aqui.

<body>

    <h1><center>JOGO DA SORTE</center></h1><hr>

    <center>Teste a sua Sorte</center>

    <center><button onclick="botao()">Clique aqui</button></center>
    <p id="button"></p>

<script>

    function title(titulo) {
        document.write("<h1> <div style=text-align:center>" + titulo + "</div> </h1>");
    }

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

    function paragraph(paragrafo) {
        document.write("<div style=text-align:center> <p> <big>" + paragrafo + "</big> </p> </div>");
    }

    function show(mostra){
        document.write("<big>" + mostra + "</big>");
        breakLine();
    }

    function raffle(n) {
        var array = [];
        for(i = 0; i < 10; i++) {
            array[i] = Math.floor( Math.random() * n) + 1;
                console.log(array);
        }
        return Math.floor( Math.random() * n)+1;
    }

    function botao() {

        function checkNumber(){

            if (numeroSorte !== "" && !isNaN(numeroSorte) && numeroSorte <= 5 && numeroSorte >= 1) {

                return check = true  
            }
            else {

                return check = false 
            }     
        }

        var press=confirm("Quer testar a sua sorte?");

        if (press==true) {
            alert("Seja Bem-Vindo(a) ao \nJOGO DA SORTE");
            var nome = prompt("Digite seu nome");
            //Troquei a variável de lugar, explicação abaixo
            var numeroSorteado = raffle(5);
                    //console.log(numeroSorteado);

            if (nome !== "" && nome !== null) {
                //A variável só executava depois do input no prompt
                //Botei na condicional anterior pra executar e pra exibir no console aqui, só depois de por o nome.
                //Deixei como comentário pra facilitar a troca, só fiz isso no intuito de teste.
                //var numeroSorteado = raffle(5);
                    console.log(numeroSorteado);
                var numero = prompt(nome + ", digite um número de 1 a 5");
                var numeroSorte = parseInt(numero);
                checkNumber()
                    //console.log(check)

                if (check == true) {
                    title("JOGO DA SORTE <hr>");
                    paragraph(nome + ", vamos começar! <hr>");
                    alert("Será que você acertou, " + nome + "?");
                    show("O número que você digitou foi: " + numeroSorte);

                     if (numeroSorte == numeroSorteado){
                         show("Olha só " + nome + " você acertou! O número sorteado também foi o " + numeroSorteado);
                        show("Atualize a página para jogar novamente!");
                     } 
                    else {
                        show("Que pena " + nome + ", você errou! O número sorteado foi " + numeroSorteado);
                         show("Atualize a página para tentar novamente!");
                    }

                } else {

                    if (numero !== "" && numero != null && isNaN(numeroSorte)) {

                        alert(numero + " não é um número!");
                        paragraph("<br>Tente usar um número de verdade na próxima vez. <p>Atualize a página e vamos de novo!</p>")
                    }
                    else {

                        if (!isNaN(numeroSorte)) {

                            alert(nome + ", por favor escolha um número de 1 a 5!");
                            paragraph("<br>O número que você informou não está de 1 a 5! <p>Atualize a página e vamos de novo!</p>");
                        } else {

                            alert("Como podemos jogar se você não escolheu um número?");
                            paragraph("<br>Você não informou um número. <p>Atualize a página e vamos de novo!</p>");  
                        }

                    }
                }

            } else {
                alert("Como podemos jogar se nem sei o seu nome?");
                paragraph("<br>Você não informou seu nome. <p>Atualize a página e vamos de novo!</p>");
            }

        }
        else{

            alert("Que pena, achei que queria arriscar!")
        } 
    }

</script>
</body>