Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[SOS Videoaula]: Exercício sobre adivinhar o número pensado + Função do document.querySelector(''input'')

Olá pessoal, tudo bem?

Venho aqui pedir uma ajudinha com um exercício que já havia concluído antes apenas com o uso do while + variáveis mas que acabei me confundindo um pouco após a aula sobre inputs, na intenção de tentar repetir o mesmo código mas com a caixa de interação com o usuário dessa vez.

Eu comecei tentando fazer alterações mínimas no código original mas, na medida em que ia recarregando o código no browser, alterei mais algumas outras coisas - como variável em função, por exemplo.

Não sei se vai dar pra entender direitinho o que eu fiz ou onde eu tentei chegar, mas me perdi um pouquinho na minha ideia inicial e agora não sei mais o que deveria fazer. Acho que essa parte da diferença entre uma variável e uma função acabou ficando meio confusa pra mim nesse exercício em questão.

Deixei 2 comentários nos trechos onde acho que o problema pode estar, porque é justo quando eu insiro um número na caixa de seleção que nada acontece - e, por isso, não consigo conferir onde pode ter tido problema no resto.

Poderiam me ajudar, por favor?

    <meta charset="utf-8">

<input/>
    <button>Digite o seu chute</button>

<script>

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

var numeroPensado = Math.round(Math.random() * 10);
        console.log(numeroPensado); 

function tentativas() {
    while(input.value <= 3) {
        alert(//A partir daqui eu já comecei a ficar um pouco mais confusa
    }

}

var chute = parseInt(prompt("Digite seu chute!"));

function verifica(){
//sinto que talvez aqui devesse ser variável e não uma função
if(input.value == numeroPensado){

    alert("Você acertou! O número pensado era " + numeroPensado);
    break;

} else {    

    alert("Você errou!");

    }
        tentativas++;
}

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

</script>
1 resposta
solução!

Olá Gabriela, Refiz o código usando parte do código que postou, para tirar suas dúvidas, Função é um bloco de instrução que você escreve para fazer determinada tarefa por exemplo a função abrePrompt(), no caso se não tivesse usado função, eu teria que reescrever o bloco de instrução toda vez que precisasse abrir o prompt, já a variável é a forma de você salvar dados, quando precisar alterar ou usar aqueles dados estará disponível.

Caso eu tenha entendido errado, me fale, espero ter ajudado.

var input;
var numeroPensado = Math.round(Math.random() * 10);
var tentativa = 0;

console.log(numeroPensado + 'Numero pensado');

// ABRE MODAL
function abrePrompt() {
    input = parseInt(prompt('DIgite o número pensado')); // PEGA VALOR DO INPUT DO MODAL

    //VERIFICA SE É UM NUMERO
    if (!isNaN(input)) {
        // SENDO UM NUMERO, CHAMA A FUNÇÃO ABAIXO
        verifica();
    } else {
        // SE NÃO FOR UM NUMERO, APRESENTA A MENSAGEM E ABRE NOVAMENTE O PROMPT
        alert('Digite um número');
        abrePrompt();
    }
}


// VERIFICA TENTATIVAS
function tentativas() {

    ++tentativa; // RETORNA VALOR DEPOIS DA ADIÇÃO

    // VERIFICA SE ATINGIU AS 3 TENTATIVAS, AQUI PODE SER FEITO VARIAS COISA, ATÉ MESMO REINICIAR O PROGRAMA
    if (tentativa == 3) {
        alert('Você atingiu 3 tentativas');
        return;
    }

    console.log(tentativa)
}


// VERICA SE RESPOSTA ESTÁ CERTA
function verifica() {
    console.log(input)

    // CHAMANDO A FUNÇÃO QUE VERIFICA A TENTATIVAS
    tentativas();

    if (input == numeroPensado) {
        alert("Você acertou! O número pensado era " + numeroPensado);
    // Coloquei essa função aqui só para deixar a mensagem 3 segundos na tela, depois disso executa as funções dentro
        setTimeout(function () { 
            alert("Programa será reiniciado");
        // Recarrega a pagina.
            location.reload();
        }, 3000)
    } else {
        alert("Você errou!");
    // Abre novamente o prompt
        abrePrompt();
    }
}

// INICIA O PROGRAMA, QUE É ABRINDO O PROMPT
abrePrompt();