1
resposta

meu código

<meta charset="utf-8">

<input/>
<button>compare com o meu segredo</button>

<script>
    // numeros aleatorios    
function sorteia() {
    return Math.round(Math.random() * 10);
    // body...
}

function sorteiaNumeros(quantidade) {

    var segredos = [];
    var numero = 1;

    wrile(numero <= quantidade){

        //segredos.push(sorteia());
        //numero++;
        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 == segredo[posicao]){

            alert("Você ACERTOU!");
        }

    }

    //if (achou == false) {

        alert("Você ERROU!");
    }
//}




</script>
1 resposta

Olá, Amaurilio, tudo bem?

Desculpe a demora em obter retorno.

Fico feliz que tenha conseguido executar os comandos, mas ao analisar atentamente percebi que há pontos de melhorias para o seu código funcionar perfeitamente.

Na função sorteiaNumeros você escreveu wrile , essa falha na grafia gera um erro de sintaxe impossibilitando que o JavaScript reconheça a palavra, com isso o programa não chega a ser executado. Para solucionar esse problema a maneira correta seria while.

while(numero <= quantidade)

Ainda nessa mesma função, ao tentar criar a variável achou, você não faz a sua atribuição representada pelo sinal = , com isso a variável não chega a ser criada. Nesse sentido a atribuição ficará assim:

var achou = false;

Na sequência, na função verifica, no interior do laço de repetição for, tivemos o mesmo problema com atribuição de variáveis, ao tentar criar a variável posicao, há o sinal de - . Para isso, basta trocar o sinal para =, como mostrado abaixo:

var posicao = 0

Logo abaixo dessa linha na condição if, está escrito segredo, quando na verdade, a variável é segredos.

if(input.value == segredos[posicao])

Notei que você utilizou botões deixando o programa com a interface mais agradável, isso é muito interessante! Porém, ele não está sendo funcional, quando colocamos o palpite, nenhuma mensagem de acerto ou de erro é emitida, ou seja, o alert não está sendo executado.

Esse comportamento, se deve ao fato que apesar de ter feito a função que faz a verificação de palpites, ela não é chamada ao ser clicado o button. Para isso, devemos criar uma variável, que chamaremos de button, e ela receberá o button. Ao acionar o evento onclick, será executada a função verifica, emitindo assim o alerta ao usuário. Abaixo, há o trecho de código correspondente a essa ação:

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

Espero ter ajudado.

Reforço que estou à disposição para tirar dúvidas.

Abraços

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