1
resposta

Aprendendo e compartilhando

//let titulo = document.querySelector("h1");
//titulo.innerHTML = "Jogo do número secreto";

//let paragrafo = document.querySelector("p");
//paragrafo.innerHTML = "Escolha um número entre 1 e 10";

//function verificarChute(){
    //console.log("botão foi clicado")
//}
let listaDeNumerosSorteados = [];
let numeroSecreto = gerarNumeroAleatorio();
let tentativas = 1;
function exibirTextoNaTela(tag,texto){
    let campo = document.querySelector(tag);
    campo.innerHTML = texto;
}
function exibirMensagemInicial(){
    exibirTextoNaTela('h1', 'Jogo do numero secreto');
    exibirTextoNaTela('p', 'Escolha um número entre 1 e 10');   
}
function gerarNumeroAleatorio(){
 let numeroEscolhido = parseInt(Math.random() * 10 + 1 );
 if (listaDeNumerosSorteados.includes(numeroEscolhido)){
    return gerarNumeroAleatorio();
 }else{
    listaDeNumerosSorteados.push(numeroEscolhido)
    console.log(listaDeNumerosSorteados)
    return numeroEscolhido;
 }
}

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);
    document.getElementById('reiniciar').removeAttribute('disabled');
    }else{
    if(chute > numeroSecreto){
      exibirTextoNaTela('p', 'O número secreto é menor que o chute'); 
    }else{
      exibirTextoNaTela('p', 'Número secreto é maior');
    }
    //tentativas = tentativas + 1;
    tentativas++;
    limparCampo();
    }
}
 function limparCampo(){
    let chute = document.querySelector('input');
    chute.value = '';
}
 function reiniciarJogo(){
    numeroSecreto = gerarNumeroAleatorio();
    limparCampo();
    tentativas = 1
    exibirMensagemInicial();
    document.getElementById('reiniciar').setAttribute('disabled', true);

 }

exibirMensagemInicial();
1 resposta

Olá, Maria.

Tudo bem?

Muito obrigado por compartilhar o seu código com a gente, vou revisar e sugerir algum ajuste se necessário:

  1. Função gerarNumeroAleatorio:

    • Sua implementação está correta ao usar recursão para garantir que o número sorteado não se repita. Isso é essencial para o funcionamento do jogo.
  2. Função verificarChute:

    • A lógica para verificar se o chute está correto também está bem implementada. Apenas certifique-se de que o botão de reiniciar está corretamente configurado no HTML.
  3. Função reiniciarJogo:

    • Está correta, mas lembre-se de que ao reiniciar o jogo, você deve limpar a lista de números sorteados para evitar que os números antigos interfiram no novo jogo.

Aqui está um exemplo de como o código pode ficar com essas melhorias:

let listaDeNumerosSorteados = [];
let numeroSecreto = gerarNumeroAleatorio();
let tentativas = 1;

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

function exibirMensagemInicial() {
    exibirTextoNaTela('h1', 'Jogo do número secreto');
    exibirTextoNaTela('p', 'Escolha um número entre 1 e 10');
}

function gerarNumeroAleatorio() {
    let numeroEscolhido = parseInt(Math.random() * 10 + 1);
    if (listaDeNumerosSorteados.includes(numeroEscolhido)) {
        return gerarNumeroAleatorio();
    } else {
        listaDeNumerosSorteados.push(numeroEscolhido);
        console.log(listaDeNumerosSorteados);
        return numeroEscolhido;
    }
}

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);
        document.getElementById('reiniciar').removeAttribute('disabled');
    } else {
        if (chute > numeroSecreto) {
            exibirTextoNaTela('p', 'O número secreto é menor que o chute');
        } else {
            exibirTextoNaTela('p', 'O número secreto é maior');
        }
        tentativas++;
        limparCampo();
    }
}

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

function reiniciarJogo() {
    listaDeNumerosSorteados = [];
    numeroSecreto = gerarNumeroAleatorio();
    limparCampo();
    tentativas = 1;
    exibirMensagemInicial();
    document.getElementById('reiniciar').setAttribute('disabled', true);
}

exibirMensagemInicial();

Certifique-se de que o botão de reiniciar no seu HTML tem o ID 'reiniciar' e está desabilitado inicialmente:

<button id="reiniciar" disabled onclick="reiniciarJogo()">Reiniciar</button>

No geral você fez um ótimo trabalho, o código está bem estruturado e funcional. Parabén! Continue assim.

Espero ter ajudado e bons estudos!