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

[Dúvida] Fiz essa linha de codigo no curso de Logica de Programação e não rodou... não achei o erro... conseguem me ajudar

<meta charset="UTF-8">

<input/>
<button>Compare com o meu segredo</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 !== 0 ) {
                
                var achou = false;

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

                    if(segredos[posicao] == numeroAleatorio){
                        achou = true;
                        break;
                    }
                }

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

        return segredos;
    }

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

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

    function verifica() {

        var achou = false;

        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>
2 respostas
<meta charset="UTF-8">

<input/>
<button>Compare com o meu segredo</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 !== 0 ) {
                
                var achou = false;

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

                    if(segredos[posicao] == numeroAleatorio){
                        achou = true;
                        break;
                    }
                }

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

        return segredos;
    }

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

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

    function verifica() {

        var achou = false;

        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>
solução!

Olá Agson!

Pelo código que você compartilhou, parece que o erro está em: segredos.push(numeroAleatorio()).

Ao invés de segredos.push(numeroAleatorio()), você deve utilizar segredos.push(numeroAleatorio). Isso ocorre porque numeroAleatorio é uma variável que já contém o número aleatório gerado pela função sorteia(), então não é necessário chamá-la como uma função novamente.

Além disso, na linha 30, você está utilizando o operador de atribuição =, ao invés do operador de comparação == . Portanto, a condição if(achou = false) sempre será verdadeira, o que pode causar um comportamento inesperado no seu código. Para corrigir isso, você deve utilizar if(achou == false).

Espero ter ajudado e bons estudos!