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

problemas jogo de adivinhação

Meu programa só esta criando números aleatórios quando coloco para sortear apenas uma vez(sorteiaNumeros (1)).Caso coloque mais que isso aparece apenas zeros no lugar dos números sorteados

<meta charset="UTF-8">

<input>

<button>Tente acertar</button>

<script>

    function sorteia(){
        return Math.round(Math.random() * 10);
    }

    function sorteiaNumeros(quantidade){ 

        var numeros = [];
        var contador = 1;

        while(contador <= quantidade){ 

            var numeroAleatorio = sorteia();
            var existe = false;


            for(var posicao = 0; posicao < numeros.length; posicao++) {
                if(numeros[posicao] = numeroAleatorio){
                    existe = true;
                    break;
                }
            }

            if(existe == false){
                numeros.push(numeroAleatorio);
                contador++;
            }
           }
           return numeros;
    }

    var numeros = sorteiaNumeros(1);
    var input = document.querySelector("input");
    var button = document.querySelector("button");
    input.focus()

    function verifica(){

        if(input.value == numeros){
            alert("ACERTOU")
        }else{
            alert("NÃO FOI DESSA VEZ")
        }
        input.value = "";
        input.focus()
    }

    button.onclick = verifica;

</script>
2 respostas
solução!

Boa noite Sérgio,

Quando você está verificando se 'numeroAleatorio' está no array 'numeros[]' faltou um '=', você está atribuindo o valor ao invés de comparar. Inclusive sua função verifica() não está verificando todos os números sorteados.

<meta charset="UTF-8">

<input>

<button>Tente acertar</button>

<script>

    function sorteia(){
        return Math.round(Math.random() * 10);
    }

    function sorteiaNumeros(quantidade){ 

        var numeros = [];
        var contador = 1;

        while(contador <= quantidade){ 

            var numeroAleatorio = sorteia();
            var existe = false;

            for(var posicao = 0; posicao < numeros.length; posicao++) {
                if(numeros[posicao] == numeroAleatorio){    //estava somente com um =
                    existe = true;
                    break;
                }
            }

            if(existe == false){
                numeros.push(numeroAleatorio);
                contador++;
                console.log(numeroAleatorio);   //Exibe os números sorteados
            }
           }
           return numeros;
    }

    var numeros = sorteiaNumeros(2);
    var input = document.querySelector("input");
    var button = document.querySelector("button");
    input.focus()

    function verifica(){    //Só funciona se somente um número for sorteado, todos os valores do array devem ser testados

        if(input.value == numeros){                                         
            alert("ACERTOU")
        }else{
            alert("NÃO FOI DESSA VEZ")
        }
        input.value = "";
        input.focus()
    }

    button.onclick = verifica;

</script>

Espero ter ajudado.

Muito obrigado.Realmente,eu não conseguia achar o erro.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software