1
resposta

Dúvida Desafio - Jogo do Número Secreto.

Tudo bem pessoal, estou iniciando nesse mundo de programação e estou com uma dúvida, tentei aprimorar o jogo do número secreto do curso de lógica de programação desabilitando o botão chute ao acertar o número secreto e deixando somente o botão novo jogo habilitado, porem ao clicar no botão novo jogo não gera um número aleatório, o número secreto continua o mesmo do acerto anterior, só gera um número secreto se eu atualizar a página. O que preciso fazer pra corrigir esse erro?

let numeroSecreto = numeroAleatorio();

mensagemInicial();

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

 function mensagemInicial(){    
  textoHtml('h1', 'Jogo do numero secreto');
  textoHtml('p', 'Digite seu nome no campo abaixo:');
}


function verificarChute() {
   let chute = document.querySelector('input').value;
     
  if (chute == numeroSecreto) {
    textoHtml('h1', 'Você Acertou!');
    textoHtml('p', 'Você descobriu o número Secreto!');
    document.getElementById('reiniciar').removeAttribute('disabled');

    //Aprimoramento 01: Ao acertar o numero secreto colocar o botão chute desabilitado, deixar habilitado somente o botão novo jogo.
    document.getElementById('chute').setAttribute('disabled', true);
   }else{
        if (chute > numeroSecreto) {
            textoHtml ('p', 'O número secreto é menor!');
          }else{
            textoHtml ('p', 'O numero secreto é maior!');
          }
          limparCampo()
  }
}
   
   function limparCampo(){
    chute = document.querySelector('input')
    chute.value =  '';
   }
    
function numeroAleatorio(){
    return parseInt(Math.random()*10+1);
}

function novoJogo() {
  numeroAleatorio();
  limparCampo();
  mensagemInicial();
  document.getElementById('reiniciar').setAttribute('disabled', true);
  // Aprimoramento 01: inclui dentro da função novoJogo o código getElementById('Chute')... para habilitar o botão chute após clicar em novo jogo.
  document.getElementById('chute').removeAttribute('disabled');
  }
1 resposta

Olá, Leandro! Tudo bem?

Na função novoJogo, você está chamando numeroAleatorio(), mas não está atribuindo o valor retornado a numeroSecreto. Por isso, o número secreto não está sendo atualizado.

Para corrigir isso, você precisa atribuir o novo número aleatório à variável numeroSecreto dentro da função novoJogo. Aqui está como você pode fazer isso:

function novoJogo() {
  numeroSecreto = numeroAleatorio(); // Atualiza o número secreto
  limparCampo();
  mensagemInicial();
  document.getElementById('reiniciar').setAttribute('disabled', true);
  document.getElementById('chute').removeAttribute('disabled');
}

Com essa alteração, toda vez que você clicar no botão "Novo Jogo", um novo número secreto será gerado e atribuído à variável numeroSecreto.

Espero ter ajudado e bons estudos!

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!