1
resposta

Como faço para o jogo reiniciar novamente após acertar?

Olá minha dúvida era se o jogador acertasse, aparecesse a opção de jogar novamente e o jogo reiniciasse, como posso fazer isso?

1 resposta

Segue um modelo da sua solicitação. Basicamente encapsulei toda a lógica do projeto dentro de uma função "jogar". Criei uma variável booleana "continuarJogando" inicializada com o valor de verdadeiro, pois quando for verificada no loop inicialmente ele irá executar. Após jogar e acertar o número, será perguntado se deseja continuar jogando. Caso não, o "confirm" retorna um valor falso, fazendo que o loop seja interrompido.

alert("Bem vindo(a) ao jogo do número secreto!");

let numeroMaximo = 500;
let continuarJogando = true;

while(continuarJogando){
    
    jogar();
    
    continuarJogando = confirm("Deseja jogar novamente?");
    
}

function jogar(){
    
    let numeroSecreto = parseInt(Math.random() * numeroMaximo) + 1;
    let chute;
    let tentativas = 1;

    while(chute != numeroSecreto){
        
        chute = prompt(`Escolha um núnmero entre 1 e ${numeroMaximo}.`);
        console.log('Valor do chute:', chute);

        console.log('Resultado da comparação:', chute == numeroSecreto);

        //se chute for igual ao número secreto
        if(chute == numeroSecreto){
            
            break;
        
        } else {
            
            console.log('Valor do número secreto:', numeroSecreto);
            //alert("Você Errou.");
        
            if(chute < numeroSecreto){
        
                alert(`O número secreto é maior que ${chute}.`);
        
            }else{
        
                alert(`O número secreto é menor que ${chute}.`);
        
            }
            
            tentativas++;

        }
        
    }

    let palavraTentativa = tentativas > 1 ? "tentativas" : "tentativa";

    alert(`Isso ai! Você descobriu o número secreto ${numeroSecreto} com ${tentativas} ${palavraTentativa}.`);

}