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

Não sei resolver problema no código

1 - Só diz que eu acertei quando digito o primeiro componente do array, e quando ele responde a mensagem do alert que seria "você acertou" vem toda bugada como se eu não tivesse setado o <meta charset = "UTF-8">.

2 - Quando digito outro componente da array, ou até mesmo um número que não seja o numeroPensado ele simplesmente não responde, e o chrome não corresponde, nem consigo acessar o console para identificar meu erro.

Segue o meu código abaixo, caso possam me ajudar =)

<meta charset="UFT-8">

<input>

<button>

    compare com o numero pensado

</button>

<script>

    function mostra(frase){

        document.write(frase);
    }

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

    var numeroPensado = [2, 7, 9, 10];

    input.focus();

    function analise(){

        var posicao = 0;
        var achou = false;

        while(posicao < numeroPensado.length){

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

                alert("Parabéns você ACERTOU!!");
                achou = true;
                break;

            }
        }

        if (achou = false){

            alert("Você ERROU");

        }

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

    button.onclick = analise;

</script>
2 respostas
solução!

Olá, Guilherme! Tudo bem? :)

Vamos analisar o código por partes.

1) O erro de acentuação ocorre porque na tag meta foi escrito UFT ao invés de UTF, veja:

//Antes:
<meta charset="UFT-8">

//Depois:
<meta charset="UTF-8">

2) Notei que você utilizou o while ao invés do for, então faltou o posicao++, nesse caso ele deve ficar após o fechamento das chaves do if:

while(posicao < numeroPensado.length){

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

                alert("Parabéns você ACERTOU!!");
                achou = true;
                break;

            }
            posicao++
        }

3) Na linha 42, foi utilizado = ao invés de ==, o = é de atribuição e o == é de comparação:

//Antes:
        if (achou = false){

//Depois:
        if (achou == false){

Corrigindo esses detalhes, seu código vai funcionar como o esperado.

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

Ótima semana e bons estudos!

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

Muito obrigado pela atenção, todos são erros bobos, porém quando a gente está de cabeça cheia não percebe. ótimo serviço de fórum =)