Falta pouco!

0 dias

0 horas

0 min

0 seg

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

duvida

let numeroSecreto = GeraNumeroAleatorio();
let tentativas = 1 ; 
function exibirTextonaTela(tag, Texto) {
    let campo = document.querySelector(tag);
    campo.innerHTML = Texto;
    }

    exibirTextonaTela('h1',' Jogo do numero secreto');
    exibirTextonaTela('p' ,'Escolha um número de 1 a 10');

    function VerificarChute() {
      let chute = document.querySelector('input').value;
      
      if (chute == numeroSecreto){
        exibirTextonaTela ('h1' ,'Acertou!');
        let palavratentativa = tentativas > 1 ? ' tentativas' : 'tentativa';
        let mensagemTentativas = `Você descobriu o número secreto com  ${tentativas} ${palavratentativa}!`;

         exibirTextonaTela ('p' ,mensagemTentativas);
    } else {
     if (chute > numeroSecreto) {
        exibirTextonaTela('p' , 'O número secreto é menor que');
     } else {
        exibirTextonaTela('p' , 'O número secreto é maior');   
        }
        tentativas++;
    }
} 

Não está executando no site, por que eu tenha feito de 2 formas diferentes ( na minha prática e na do instrutor)

1 resposta
solução!

Oi, Davy! Tudo joia?

Os dois pontos críticos que travam o jogo são: converter o input para número e garantir que a função do número aleatório exista (e com o nome correto). Abaixo vai um exemplo completo, curto e funcional, com reinício do jogo e contagem de tentativas.


// **HTML mínimo**
<h1>Jogo do numero secreto</h1>
<p>Escolha um numero de 1 a 10</p>
<input type="number" min="1" max="10" />
<button onclick="verificarChute()">Chutar</button>
<button id="btn-reiniciar" onclick="reiniciarJogo()" disabled>Novo Jogo</button>

// **JS**
let numeroSecreto = gerarNumeroAleatorio(); // **garante função existente**
let tentativas = 1;

// **exibe texto na tela**
function exibirTextoNaTela(tag, texto) {
  const campo = document.querySelector(tag);
  campo.innerHTML = texto;
}

// **mensagem inicial**
exibirTextoNaTela('h1', 'Jogo do numero secreto');
exibirTextoNaTela('p', 'Escolha um numero de 1 a 10');

// **limpa e foca no input**
function limparCampo() {
  const input = document.querySelector('input');
  input.value = '';
  input.focus();
}

// **gera inteiro de 1 a 10**
function gerarNumeroAleatorio() {
  return Math.floor(Math.random() * 10) + 1;
}

// **verifica chute**
function verificarChute() {
  const input = document.querySelector('input');
  const chute = Number(input.value); // **conversão para número**

  if (!chute) {
    exibirTextoNaTela('p', 'Digite um numero valido.');
    return;
  }

  if (chute === numeroSecreto) {
    exibirTextoNaTela('h1', 'Acertou!');
    const palavraTentativa = tentativas > 1 ? 'tentativas' : 'tentativa';
    const mensagem = `Voce descobriu o numero secreto com ${tentativas} ${palavraTentativa}!`;
    exibirTextoNaTela('p', mensagem);

    // **desabilita chute, habilita reinicio**
    document.querySelector('input').disabled = true;
    document.querySelector('button[onclick="verificarChute()"]').disabled = true;
    document.getElementById('btn-reiniciar').disabled = false;
  } else {
    if (chute > numeroSecreto) {
      exibirTextoNaTela('p', 'O numero secreto eh menor.');
    } else {
      exibirTextoNaTela('p', 'O numero secreto eh maior.');
    }
    tentativas++;
    limparCampo();
  }
}

// **reinicia o jogo**
function reiniciarJogo() {
  numeroSecreto = gerarNumeroAleatorio();
  tentativas = 1;
  exibirTextoNaTela('h1', 'Jogo do numero secreto');
  exibirTextoNaTela('p', 'Escolha um numero de 1 a 10');
  const input = document.querySelector('input');
  input.disabled = false;
  document.querySelector('button[onclick="verificarChute()"]').disabled = false;
  document.getElementById('btn-reiniciar').disabled = true;
  limparCampo();
}

Resumo rapido do ajuste:

  • Use Number(...) para comparar número com número (evita comparação de string).
  • Implemente gerarNumeroAleatorio() (se estava como GeraNumeroAleatorio, o nome diferente causa erro).
  • Reinicie variáveis e estado da UI em reiniciarJogo().

Veja este exemplo sem acentuacao e com strings simples (mesma logica, nomes claros):


// **exemplo sem acentuacao**
function dica(chute, alvo){
  return chute > alvo ? 'Menor' : 'Maior';
}
console.log(dica(7, 4)); // **retorna "Menor"**
// O codigo acima **compara** dois numeros e **retorna** a dica textual.

Espero ter ajudado. Conte com o apoio do Fórum na sua jornada.

Abraços e bons estudos!

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