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

errei alguma coisa que não estou vendo no codigo de gerar 5 numeros diferentes

<meta charset="utf-8">
<input/>
<button>Compare com o meu segredo</button>
<script type="text/javascript">

    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;

            if(numeroAleatorio !== 0) {

                    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("voce acertou!");
                achou = true;
                break;
            }
        }

        if( achou == false){

        alert("voce errou!");
        }

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

    }

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

    button.onclick = verifica;
</script>
3 respostas

Olá, William!

Seu código não está aparecendo corretamente. Para simbolizar que seu texto é um trecho de código, você deve apertar TAB ou digitar 4 espaços em branco no começo de cada linha, e assim, o texto ficará na cor marrom claro.

ola mateus! agora esta certo, obrigado por me ajudar, pode analisar qual foi meu erro?

solução!

Olá, William!

Verifiquei aqui e a lógica está certinha, mas ainda retornava o vetor de números sorteados com um número repetido.

Após analisar com mais calma, vi que você adicionou acidentalmente um ponto de vírgula (;) após a definição do laço for, dentro da função sorteia:

.
.
.
if(numeroAleatorio !== 0) {
                for(var posicao = 0; posicao < segredos.length; posicao++) **;** {
.
.
.

Removi o ponto e vírgula e testei novamente. Funcionou corretamente.

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

Espero ter ajudado!

Boa sorte em seus estudos!