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

[Bug] Reiniciar o jogo não funciona

O botão "novo jogo" está quase perfeito, porém o número aleatório é sempre o mesmo do anterior

let numeroAleatorio = sorteiaNumero();
let tentativas = 1
inicioDoJogo();

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

function inicioDoJogo(){
exibirTextoNaTela('h1', 'Jogo do Adivinhão!');
exibirTextoNaTela('p', 'Escolha seu número entre 1 e 10');
}

function verificarChute(){
    let chute = document.querySelector('input').value;
    let palavratentativa = tentativas > 1 ? 'tentativas' : 'tentativa'
    let mensagemTentativas = `Você acetou com ${tentativas} ${palavratentativa}`
    if(chute == numeroAleatorio){
        exibirTextoNaTela('h1', 'Acertou, Adivinhão!');
        exibirTextoNaTela('p', mensagemTentativas);
    }else if (chute > numeroAleatorio){
        exibirTextoNaTela('h1', 'Seu palpite foi maior');
    }else{
        exibirTextoNaTela('h1', 'Seu palpite foi menor');
    }
    tentativas++
    limparCampo();
    document.getElementById('reiniciar').removeAttribute('disabled');
}


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

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

function novoJogo(){
    sorteiaNumero();
    limparCampo();
    tentativas = 1;
    inicioDoJogo();
    document.getElementById('reiniciar').setAttribute('disabled', true);
}


2 respostas
solução!

Olá, Rafael!

No seu código, na função novoJogo(), você está chamando a função sorteiaNumero(), mas não está atribuindo o valor retornado por essa função à variável numeroAleatorio. Por isso, o número aleatório sempre será o mesmo do anterior.

Para corrigir isso, você precisa atribuir o valor retornado por sorteiaNumero() à variável numeroAleatorio. Ficaria assim:

function novoJogo(){
    numeroAleatorio = sorteiaNumero(); // atribui o novo número aleatório
    limparCampo();
    tentativas = 1;
    inicioDoJogo();
    document.getElementById('reiniciar').setAttribute('disabled', true);
}

Dessa forma, ao clicar no botão "novo jogo", um novo número aleatório será sorteado e atribuído à variável numeroAleatorio.

Espero ter ajudado e reforço que em casos de dúvidas, conte sempre com o fórum da comunidade Alura! Bons estudos!

Sucesso

Um grande abraço e até mais!

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

Insira aqui a descrição dessa imagem para ajudar na acessibilidade