5
respostas

Número se repetem, ainda estão duplicados

O que fiz de diferente nesse código? Meus números ainda estão duplicando.

(Por sinal, não sei se entendi muito bem a aula)

Código abaixo para conferir:

<meta charset="UTF-8">

<input/>
<button>Compare com 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("Parabéns, Você ACERTOUUUUUUUUUUU!");
                achou = true;
                break;
            }

        }

        if (achou == false) {

            alert("Você ERROUUUU!!!");
        }

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

    }


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

    button.onclick = verifica;

</script>
5 respostas

Estou revisionando a bastante tempo, e mesmo assim ainda não encontrei qual é o erro.

Oi, Vinicius, como vai?

Seu código saiu em branco. Pode postar novamente?

Neste tópico você encontrará um tutorial de como enviar corretamente seu código aqui no fórum, assim conseguirei te ajudar da melhor forma.

Fico no aguardo.

Abraços!

Atualizado!

Olá! Segue função corrigida com os comentários:

<meta charset="UTF-8">

<input/>
<button>Compare com 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();
            var achou = false;
            // A variável acima "var achou" saiu da função "for"


            if (numeroAleatorio !== 0) {

                for (var posicao = 0; posicao < segredos.length; posicao++) {
                    // Aberto a função com "{"

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

                }
                // Função fechada

                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("Parabéns, Você ACERTOUUUUUUUUUUU!");
                achou = true;
                break;
            }

        }

        if (achou == false) {

            alert("Você ERROUUUU!!!");
        }

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

    }


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

    button.onclick = verifica;

</script>
<meta charset="UTF-8">
<input/>
<button>Acerte o número</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>

Vinicius espero te ajudar, também penei bastante nessa aula, mas vi que minha maior dificuldade foi com fechar as funções, o bom é sempre tentar até conseguir, sucesso bons estudos !