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

Não consigo fazer meu código funcionar

Boa noite, Eu olhei e refiz o código várias vezes, comparei com a dor professor e mesmo assim não consegui encontrar o erro que inviabiliza o funcionamento . Pode ser que seja bem óbvio. No console aparece que o erro está na linha 83, ou seja, na última. O que também não consegui entender. Segue abaixo meu código, desde já agradeço pela ajuda. Sou nova nesse mundo da programação e estou dando minhas cabeçadas haha.

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

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

Oi, Débora! Tudo bem com você?

Na linha 60, foi escrito segredo ao invés de segredos, com S no final. Veja:

//Antes:
if(input.value == segredo[posicao])

//Depois:
if(input.value == segredos[posicao])

Além disso, faltou fechar as chaves da função verifica():

function verifica() {

    var achou = false;

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

    if(input.value == segredo[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>

Para corrigir, basta fechar as chaves após o input.focus():

function verifica() {

    var achou = false;

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

    if(input.value == segredo[posicao])  {

        alert("Você Acertou!");
        achou = true;
        break;
        }

    }

    if(achou == false) {

    alert("Você Errou!");
}

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

}  // <--- Fecha as chaves aqui!

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

    button.onclick = verifica;

</script>

Espero ter ajudado! Qualquer dúvida, estamos à disposição.

Um abraço e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!

Ajudou sim e muito. Já corrigi e está funcionando perfeitamente! Muito obrigada!

Abraços.