1
resposta

fui realizar o teste mas continua repetindo numeros.

Já revisei com o codigo do prof mas mesmo assim não achei aonde errei...

<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();
            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(6);

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>
1 resposta

Oi Mônica!

Na função sorteiaNumeros(quantidade) você faz uma comparação achou == true.

trecho do código postado pela Mônica em que foi declarado que achou é igual a true

Mas na verdade aqui estamos querendo que a variável receba o valor true . Então o correto é usar apenas um sinal de igual.

Corrigindo fica assim:

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

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