1
resposta

Código sobre adivinhar um número(Treino)

<meta charset="UTF-8">

<input/>
<button> Compare com o meu segrede </button>

<script>

    function sorteia(){

        return Math.round(Math.random()*10);
    }

    function sorteiaNumeros(quantidade){

        var segredos = [];

        var numero = 1;

        while(numero<= quantidade){

            var numeroAleatorio = sorteia();

            if(numeroAleatorio!==){

                var achou = false;

                for(var posicao = 0; posicao < segredos.length; posicao++){

                    if(segredos[posicao] == numeroAleatorio){

                        achou = true;
                        break;

                    }
                }
                if(achou == false){
                    segredos.push(numerosAleatorios);
                    numero++;
                }
            }

        }
        return segredos;
    }
    var segredos = sorteiaNumeros(5);

    console.log(segredos);

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

    function verifica(){

        var achou = false;

        //o length retorna a quantidade de posições que tem no array
        for(var posicao = 0; posicao < segredos.length; posicao++){

            if(input.value == segredos[posicao]){

                alert("Você ACERTOU!!");
                achou = true;
                break;

            }
        }

        if(achou == false){
        alert ("Você ERROU!!");
        }

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

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

    button.onclick = verifica;
    </script>
1 resposta

Oi, Maria, tudo bem?

Peço desculpas pela demora em te responder!

Testei seu código e percebi dois erros de sintaxe.

O primeiro problema se encontra na definição da condição aplicada dentro do laço de repetição while(numero <= quantidade), nele está escrito a condição como mostra o código abaixo:

if(numeroAleatorio!==){

Contudo a definição de diferente é dada pelo sinal de exclamação seguido por apenas um sinal de igual (!=), além disso o nenhum valor é colocado para realizar a comparação a torna inválida. Para solucionar este problema basta alterar o sinal colocado para representar a diferença e acrescentar um valor para realizar a comparação. Sendo assim, o comando seria escrito como mostrado abaixo:

if(numeroAleatorio != 0){

Já o segundo se encontra na condição ìf(achou == false)`, onde você colocou o seguinte comando:

if(achou == false){
segredos.push(numerosAleatorios);
numero++;
}

Contudo a definição da variável está como var = numeroAleatorio, fazendo com que o parâmetro adicionado a propriedade segredos.push, seja indefinido pelo navegador. Podemos corrigir este problema substituindo numerosAleatorios por numeroAleatorio. Desse modo o comando seria escrito da seguinte maneira:

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

Espero ter ajudado e caso tenha outras dúvidas, estarei à disposição para te ajudar!

Abraço!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!