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

[Duvida] Apresentação do desafio

Antes de ver a aula de resolução eu me propus em tentar fazer e dar uma brincada nas possibilidades...

alert('Boas vindas ao jogo do número secreto');
//Opção para o Jogador selecionar o nivel de dificuldade
alert ('Selecionde a dificuldade.');
let dificuldade = prompt('Dificuldades: Facil | Mediana | Dificil | Impossivel');
let numeroMax
//IF para determinar o número maximo de numeros possiveis de serem o número secreto
if (dificuldade == 'Impossivel'){
    numeroMax = 10000;
}else{
    if(dificuldade == 'Dificil'){
        numeroMax = 1000;
    }else{
        if(dificuldade == 'Mediana'){
            numeroMax = 100;
        }else{
            //Qualquer retorno que o jogador dar entrará na dificuldade Facil
            dificuldade = 'Facil';
            numeroMax = 10;
            }
        }
    }
console.log(`Jogador optou pela dificuldade ${dificuldade}.`);
//Determinar qual número secreto será escolhido com base na dificuldade
let numeroSecreto = parseInt(Math.random() * numeroMax + 1);
console.log(numeroSecreto);
let chute;
let tentativas = 1;
//enquanto chute não for igual ao número secreto.
while ( chute != numeroSecreto){
    //Caso o Jogador fique cansado de tentar e falhar
    if (tentativas > 10){
        alert('Você pode DESISTIR! Clique em CANCELAR.');
    }
    chute = prompt(`Escolha um número entre 1 e ${numeroMax}`);
    // se chute for igual ao número secreto
    if ((chute == numeroSecreto)||(chute == null) ) {
        //Caso Usuario acerte de primeira ou finalmente acerte. O loop é interrompido e da continuidade ao comandos que estão fora dele.
        break;
    } else {
        //Caso o usuario use mais de 1 tentativa ele vai dando dicas e perguntado novamente qual o chute do usuario novamente.
        if (chute > numeroSecreto){
            alert(`O número secreto é menor que ${chute}.`);
        }else{
            alert(`O número secreto é maior que ${chute}.`);
        }
        //tentativas = tentativas + 1;
        tentativas++;
    }
}
//Output para caso jogador acerte ou desista 
if (chute == null){
    let palavraTentativa = tentativas > 1 ? 'tentavivas': 'tentativa';
    alert(`Que pena! Você não descobriu o número secreto que era ${numeroSecreto}. Você optou por desistir após ${tentativas} ${palavraTentativa}.`);
}else{
    let palavraTentativa = tentativas > 1 ? 'tentavivas': 'tentativa';
    alert(`Isso ai! Você descobriu o número secreto ${numeroSecreto}. Você precisou de ${tentativas} ${palavraTentativa} para acertar.`);
}

Teriam alguma sugestão em como melhorar a seleção de dificuldade? Pois para selecionar as dificuldades teria que escrever EXATAMENTE como esta mostrando no ALERT. Se não vai entrar na dificuldade Fácil.

2 respostas
solução!

Oi Wilson, tudo bem?

Que legal essa sua ideia! Parabéns por tentar fazer sozinho antes de ver a resolução.

Irei te dar dicas de como melhorar a seleção de dificuldade.

Uma maneira de melhorar a seleção de dificuldade é torná-la insensível a maiúsculas e minúsculas, permitindo que o usuário insira a dificuldade de qualquer maneira (maiúsculas, minúsculas ou uma combinação de ambas). Você pode usar a função toLowerCase() para converter a entrada do usuário em minúsculas antes de verificar a dificuldade.

E também você pode usar a função normalize para remover os acentos da entrada do usuário antes de comparar com as opções de dificuldade, assim também deixa tudo no mesmo padrão para ajudar na hora de melhorar a seleção de dificuldade.

alert('Boas vindas ao jogo do número secreto');

// Função para remover acentos da entrada do usuário
function removerAcentos(str) {
    return str.normalize("NFD").replace(/[\u0300-\u036f]/g, "");
}

// Opção para o Jogador selecionar o nivel de dificuldade
alert('Selecione a dificuldade.');
let dificuldade = removerAcentos(prompt('Dificuldades: Fácil | Mediana | Difícil | Impossível').toLowerCase());
let numeroMax;

// IF para determinar o número máximo de números possíveis de serem o número secreto
if (dificuldade === 'impossivel') {
    numeroMax = 10000;
} else if (dificuldade === 'dificil') {
    numeroMax = 1000;
} else if (dificuldade === 'mediana') {
    numeroMax = 100;
} else {
    // Qualquer retorno que o jogador der entrará na dificuldade Fácil
    dificuldade = 'facil';
    numeroMax = 10;
}

console.log(`Jogador optou pela dificuldade ${dificuldade}.`);

Um abraço e bons estudos.

Olá Lorena. Muito obrigado pelas dicas. Adorei elas! Irei testa-las no dentro do código. :)