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

[Projeto] Projeto final - Adivinha

O curso foi bacana, mas como o professor falou o foco era aprender sobre lógica. O resto é com a gente agora...

Eu implementei no projeto a quantidade de tentativas em que a pessoa acertou o número e também coloquei uma pontuação dependendo da quantidade de tentativas...

O programa também recarrega a página que que o número é adivinhado

<meta charset="UTF-8">

<h1>Adivinha</h1>

<p>Tente adivinhar o número!</p>

<input type="number" min="1" max="100"/>
<button>Tente adivinhar o número</button>

<script>
    function sorteia() {
        return Math.round(Math.random() * 100);
    }

    function sorteiaNumeros(quantidade) {
        var segredos = [];
        var contador = 1;
        while(contador <= quantidade) {
            var numeroAleatorio = sorteia();
            var achou = false;
            if (numeroAleatorio !== 0) {
                for(var posicao = 0; posicao < segredos.length; posicao++) {
                    if(segredos[posicao] == numeroAleatorio){
                        achou = true;
                        break;
                    }
                }

                if (achou == false) {
                    segredos.push(numeroAleatorio);
                    contador++;
                }
            }
        }

        return segredos;
    }

    var segredos = sorteiaNumeros(10);
    console.log(segredos);

    var input = document.querySelector("input");
    input.focus();

    tentativas = 1;
    function verifica() {
        var achou = false;
        for(var posicao = 0; posicao < segredos.length; posicao++) {
            if(input.value == segredos[posicao]) {
                alert("Parabéns, você acertou na " + tentativas + "ª tentativa!!!\nVocê ganhou " + (1000 / tentativas) + " ponto(s)!!!");
                achou = true;
                location.reload(); // recarrega a pagina para gerar novos numeros 
                break;
            } 
        }

        if(achou == false) {
            alert("Que pena, você errou...");
            tentativas++;
        }

        input.value = "";
        input.focus();
    }

    var button = document.querySelector("button");
    button.onclick = verifica;

</script>
1 resposta
solução!

Olá, tudo bem?

Parabéns pelo seu código! Muito legal ver que você está seguindo a dica do instrutor sobre "o resto ser com você..." e está aplicando coisas que não foram vistas no curso. Além disso, seu código está bem organizado, com boa indentação, o que facilita a leitura e compreensão. Agradeço por compartilhar conosco. :)

Vi que no cálculo da pontuação o resultado pode ser um número com vírgula. Assim, gostaria de deixar um dica. Caso você queira limitar a quantidade de números mostrados após a vírgula, existe um método muito interessante no JavaScript chamado .toFixed(). Para utilizá-lo basta passarmos como parâmetro a quantidade de casas que queremos após a vírgula.

Assim, se você quisesse só duas casas após a vírgula, o seu código ficaria da seguinte maneira:

alert("Parabéns, você acertou na " + tentativas + "ª tentativa!!!\nVocê ganhou " + (1000 / tentativas).toFixed(2) + " ponto(s)!!!");

Deixo também como sugestão a leitura do artigo a seguir, que fala sobre diversas possibilidades de formatação de números no JavaScript, mostrando diversos métodos que podem ser utilizados, inclusive o .toFixed().

Lembre-se que você pode sempre contar com o fórum da Alura para tirar suas dúvidas e compartilhar seu desenvolvimento.

Abraços. Bons estudos!