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

Adicionar dificuldades

Achei interessante a ideia do joguinho de adivinhação então acrescentei 3 dificuldades para o usuário escolher! Se alguém souber uma forma mais simples de fazer o mesmo. Segue o código: codepen.io

Parte com o código de dificuldade:

//html e alguns códigos
    var quantidadeNumeros = 0;
    var dificuldade = 0;
    while (dificuldade <= 5) {
        var selecionaDificuldade = prompt("Digite a dificuldade que prefere. Somente ''facil'', ''medio'' ou ''dificil''");

        if (selecionaDificuldade == "facil") {
            quantidadeNumeros = 5;
            dificuldade = 10;
            break;
        } 
        if (selecionaDificuldade == "medio") {
            quantidadeNumeros = 3;
            dificuldade = 10;
            break;
        }
        if (selecionaDificuldade == "dificil") {
            quantidadeNumeros = 1;
            dificuldade = 10;
            break;
        }
        if (dificuldade <= 5) {
            alert("Digite somente ''facil'', ''medio'' ou ''dificil'' sem as aspas e em letra minuscula.");
        }
    }    
//código de sorteio
    var segredos = sorteiaNumeros(quantidadeNumeros);
//mais código

Código completo:

<meta charset="utf-8">
<p>Digite um numero de 1 a 10 abaixo:</p>
<input>
<button>Confira se acertou</button>
<script>
    var quantidadeNumeros = 0;
    var dificuldade = 0;
    while (dificuldade <= 5) {

        var selecionaDificuldade = prompt("Digite a dificuldade que prefere. Somente ''facil'', ''medio'' ou ''dificil''");

        if (selecionaDificuldade == "facil") {
            quantidadeNumeros = 5;
            dificuldade = 10;
            break;
        } 
        if (selecionaDificuldade == "medio") {
            quantidadeNumeros = 3;
            dificuldade = 10;
            break;
        }
        if (selecionaDificuldade == "dificil") {
            quantidadeNumeros = 1;
            dificuldade = 10;
            break;
        }
        if (dificuldade <= 5) {
            alert("Digite somente ''facil'', ''medio'' ou ''dificil'' sem as aspas e em letra minuscula.");
        }
    }    

    function sorteia(){
        return Math.round(Math.random()* 10);
    }

    function sorteiaNumeros(quantidade){
        var segredos = [];
        var numero = 1;
        while(numero <= quantidade){
            var numeroAleatorio = sorteia();
            var achou = false;
            if (numeroAleatorio !== 0) {
                for (var posicao = 0; posicao < segredos.length; posicao++) {
                     if (segredos[posicao] == numeroAleatorio) {
                         achou = true;
                         break;
                     }
                }
                if (achou == false) {
                    segredos.push(numeroAleatorio);
                    numero++;
                }
            }
        }
        return segredos;
    }



    var segredos = sorteiaNumeros(quantidadeNumeros);

    //console.log(segredos);
    var input = document.querySelector("input");
    input.focus();
    function verifica() {
        var certo = false;
        for (var posicao = 0; posicao < segredos.length; posicao++) {
            if (input.value == segredos[posicao]) {
                alert("Você acertou!");
                certo = true;
                break;
            }
        }
        if (certo == false) {
            alert("Você errou!");
        }
        input.value = "";
        input.focus();
    }
    var button = document.querySelector("button");
    button.onclick = verifica;
</script>
3 respostas
solução!

Oi Luigi tudo bem?

Só nessa parte simplificaria um pouco

ao invés de:

    var dificuldade = 0;
    while (dificuldade <= 5) {

        var selecionaDificuldade = prompt("Digite a dificuldade que prefere. Somente ''facil'', ''medio'' ou ''dificil''");

        if (selecionaDificuldade == "facil") {
            quantidadeNumeros = 5;
            dificuldade = 10;
            break;
        } 
        if (selecionaDificuldade == "medio") {
            quantidadeNumeros = 3;
            dificuldade = 10;
            break;
        }
        if (selecionaDificuldade == "dificil") {
            quantidadeNumeros = 1;
            dificuldade = 10;
            break;
        }
        if (dificuldade <= 5) {
            alert("Digite somente ''facil'', ''medio'' ou ''dificil'' sem as aspas e em letra minuscula.");
        }
    }    

faria (perdoe a minha identação que ficou bugada)

var validacao= false;
while (validacao==false) {

    var selecionaDificuldade = prompt("Digite a dificuldade que prefere. Somente ''facil'', ''medio'' ou ''dificil''");

    switch (selecionaDificuldade ) {
          case  "facil":
            quantidadeNumeros = 5;
             validacao= true;
            break;
        case  "medio":
            quantidadeNumeros = 3;
             validacao= true;
                break;

          case "dificil":
                  quantidadeNumeros = 1;
              validacao= true;
                break;
          default:
              alert("Digite somente ''facil'', ''medio'' ou ''dificil'' sem as aspas e em letra minuscula.");
                break;
        }

}

Espero ter ajudado!!!

Sem problema com a identação também passei um bom tempo corrigindo a minha pra postar aqui hahahaha

Sobre as mudanças eu não conhecia o switch mas vendo seu código deu pra entender direitinho como ele funciona.

O var x = false trocando depois para var x = truedentro dos if's ou no seu caso case'snão estava funcionando aqui e não tinha percebido o porque, por isso usei x <= 5 e depois x = 10. Revendo o código agora eu percebi que eu não estava colocando == nas horas que precisavam bugando o while e o restante do código. Agora já concertei e substitui.

Obrigado pela ideia de simplificação :)

Disponha e bons estudos!!!