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

[Bug] Função limparCampo() não funciona

Toda vez que faço uma tentativa e aperto o botão chutar o numero não é limpo.

Código abaixo:

let numeroSecreto = gerarNumeroAleatorio();
  console.log(numeroSecreto);
let tentativas = 1;

function exibirTextoNaTela(tag, texto) {
  let campo = document.querySelector(tag);
  campo.innerHTML = texto;
}

function mensagemInicial(){
    exibirTextoNaTela('h1', 'Jogo do numero');
    exibirTextoNaTela('p', 'Escolha entre 1 a 10');
}

function verificarChute() {
  let chute = parseInt(document.querySelector('input').value);
    if (chute == numeroSecreto){
        exibirTextoNaTela('h1', 'ACERTOUUUU!!!!!!!!');
        let palavraTentativa = tentativas > 1 ? 'tentativas':'tentativa'
        let mensagemTentativa = `Voce acertou o numero secreto com ${tentativas} ${palavraTentativa}`
        exibirTextoNaTela('p',mensagemTentativa );
        document.getElementById('reiniciar').removeAttribute('disabled');
    } else if (chute > numeroSecreto){
        exibirTextoNaTela('p', 'Numero secreto é menor');

} else{
    exibirTextoNaTela('p', 'numero secreto é maior');
}
tentativas++
}

function gerarNumeroAleatorio() {
  return parseInt(Math.random() * 10 + 1 );
}

function limparCampo() {
    chute = document.querySelector('input');
    chute.value = ' ';
}

function reiniciarJogo(){
    numeroSecreto = gerarNumeroAleatorio();
    limparCampo();
    tentativas = 1;
    mensagemInicial();
    document.getElementById('reiniciar').setAttribute('disebled', true)
}

Garanta sua matrícula hoje e ganhe + 2 meses grátis

Continue sua jornada tech com ainda mais tempo para aprender e evoluir

Quero aproveitar agora
5 respostas

Ola tudo bem?
Desculpe mas tive que editar o post.
Na sua função limparCampo() a string precisa estar vazia e parece que inseriu um espaço entre as aspas.
E faltou declarar chute com let para que fique no escopo local.
Se não inserir nada o javascript vai entender chute como var chute.
E o escopo muda para global podendo ocasionar erros.
Exemplo:

function limparCampo() {
    let chute = document.querySelector('input');
    chute.value = ''; //sem nada entre as aspas
}

No final da função reiniciarJogo() você escreveu:

document.getElementById('reiniciar').setAttribute('disabled', true); //alterado aqui

O atributo correto é disabled, e não disebled.
E deve chamar limparCampo() dentro da função verificarChute() abaixo de tentativas++ antes de fechar o escopo da função.
Teste ai e avisa se deu certo.
Bons estudos.

Ola Ronaldo.

Continua da mesma forma:

let numeroSecreto = gerarNumeroAleatorio();
  console.log(numeroSecreto);
let tentativas = 1;

function exibirTextoNaTela(tag, texto) {
  let campo = document.querySelector(tag);
  campo.innerHTML = texto;
}

function mensagemInicial(){
    exibirTextoNaTela('h1', 'Jogo do numero');
    exibirTextoNaTela('p', 'Escolha entre 1 a 10');
}

function verificarChute() {
  let chute = parseInt(document.querySelector('input').value);
    if (chute == numeroSecreto){
        exibirTextoNaTela('h1', 'ACERTOUUUU!!!!!!!!');
        let palavraTentativa = tentativas > 1 ? 'tentativas':'tentativa'
        let mensagemTentativa = `Voce acertou o numero secreto com ${tentativas} ${palavraTentativa}`
        exibirTextoNaTela('p',mensagemTentativa );
        document.getElementById('reiniciar').removeAttribute('disabled');
    } else if (chute > numeroSecreto){
        exibirTextoNaTela('p', 'Numero secreto é menor');

    } else{
        exibirTextoNaTela('p', 'numero secreto é maior');
    }
    tentativas++
}

function gerarNumeroAleatorio() {
  return parseInt(Math.random() * 10 + 1 );
}

function limparCampo() {
    let chute = document.querySelector('input');
    chute.value = ' '; //sem nada entre as aspas
}

function reiniciarJogo(){
    numeroSecreto = gerarNumeroAleatorio();
    limparCampo();
    tentativas = 1;
    mensagemInicial();
    document.getElementById('reiniciar').setAttribute('disebled', true)
}

Vamos lá amigo!
Vou lhe enviar o código corrigido.
Confere ai e compare com o seu.

let numeroSecreto = gerarNumeroAleatorio();
 console.log(numeroSecreto);
let tentativas = 1;

function exibirTextoNaTela(tag, texto) {
  let campo = document.querySelector(tag);
  campo.innerHTML = texto;
}

function mensagemInicial(){
    exibirTextoNaTela('h1', 'Jogo do numero');
    exibirTextoNaTela('p', 'Escolha entre 1 a 10');
}

function verificarChute() {
  let chute = parseInt(document.querySelector('input').value);
    if (chute == numeroSecreto){
        exibirTextoNaTela('h1', 'ACERTOUUUU!!!!!!!!');
        let palavraTentativa = tentativas > 1 ? 'tentativas':'tentativa'
        let mensagemTentativa = `Voce acertou o numero secreto com ${tentativas} ${palavraTentativa}`
        exibirTextoNaTela('p',mensagemTentativa );
        document.getElementById('reiniciar').removeAttribute('disabled');
    } else if (chute > numeroSecreto){
        exibirTextoNaTela('p', 'Numero secreto é menor');

    } else{
        exibirTextoNaTela('p', 'numero secreto é maior');
    }
    tentativas++;
    limparCampo(); // funçao adicionada aqui...
}

function gerarNumeroAleatorio() {
  return parseInt(Math.random() * 10 + 1 );
}

function limparCampo() {
    let chute = document.querySelector('input');
    chute.value = ''; //digite apenas aspas
}

function reiniciarJogo(){
    numeroSecreto = gerarNumeroAleatorio();
    limparCampo();
    tentativas = 1;
    mensagemInicial();
    document.getElementById('reiniciar').setAttribute('disabled', true);//alterado disabled aqui
}

Teste ai que agora vai!
E não esqueça de dar um feedback.
Bons estudos.

solução!

Deu certo!

Muito obrigado!

Havia faltado o limparCampo(); abaixo do tentativas++

Oh meu amigo.
Fiquei feliz que tenha dado certo.
Só fiquei triste por não ter marcado minha resposta como solução.
Mas vida que segue.
Bons estudos.
Até...