Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Projeto] Exercício: Jogo da Adivinhação

Sou iniciante na programação e estou postando esse código apenas para compartilhar o que aprendi até o momento. Tentei utilizar tudo que estudei até o momento:

Críticas construtivas e opiniões são sempre bem-vindas! :)

<meta charset="UTF-8">

<script>

    function sorteia(multiplicador) {
        var numeroSorteado = Math.round(Math.random() * multiplicador);
        return numeroSorteado;
    }


    alert("Jogo da Advinha: Clique em 'ok' parar começar a jogar!");

    alert("Obs: Digite 'SAIR' quando quiser parar de jogar.");

    var nivel = 1;


    while (true) {

        if (nivel > 10) {
            break;
        }

        if (chute == "SAIR" || chute == "sair") {    // quebra o primeiro loop.
            break;
        }

        var chute = ".";
        var numeroMultiplicador = 10 * nivel;    // define o número máximo possível a ser sorteado de acordo com o nível.
        var numeroPensado = sorteia(numeroMultiplicador);   // sorteia o número de acordo com o número multiplicador.
        console.log(numeroPensado);

        alert("Nível " + nivel + ": Chute números de 0 a " + nivel * 10);


        for(var tentativas = 3; chute != numeroPensado && tentativas > 0; tentativas--) {

            chute = ".";


            while(isNaN(chute) || chute > numeroMultiplicador) {    // verifica se o jogador digitou apenas números ou números dentro da margem permitida;

                chute = prompt("Tentativas restantes: " + tentativas + " - Qual é o seu chute?");

                if (chute == "SAIR" || chute == "sair") {    // quebra o terceiro loop, caso o jogador escolha sair do jogo.
                    alert("Você saiu do jogo.");
                    break;
                }

                chute = parseInt(chute);   // transforma algumas string's em número. Ex: "18f"; "13asf".

                if (isNaN(chute)) {
                    alert("Isso não é um número!");

                } else {
                    if (chute > numeroMultiplicador) {
                        alert("Digite apenas números de 0 a " + numeroMultiplicador + ".");
                    }
                }
            }


            if (chute == "SAIR" || chute == "sair") {    // quebra o segundo loop.
                break;
            }


            if (chute == numeroPensado) {

                nivel++;

                if (nivel <= 10) {    

                    alert("Parabéns! Você ACERTOU!");

                    alert("ATENÇÃO: Você passou para o nível " + nivel + ".");    

                } else {
                    break;
                }


            } else {

                if (tentativas == 1) {
                    alert("Ops! Você PERDEU! O número pensado era " + numeroPensado + ". Clique em 'ok' para recomeçar.");

                } else {
                    if (numeroPensado < chute) {
                        alert("Você ERROU! O número pensado é menor que seu chute. Tente novamente!");

                    } else {
                        alert("Você ERROU! O número pensado é maior que seu chute. Tente novamente!");

                    }
                }
            }
        }
    }


    if (nivel > 10) {
        document.write("PARABÉNS!!! VOCÊ ZEROU O JOGO!")

    } else {        
    document.write("Você saiu do jogo, recarregue para jogar novamente.");
}


</script>
1 resposta
solução!

Olá Matheus, tudo bem com você?

Muito legal a sua solução! Parabéns pela disposição em ir além do proposto, ficou muito show o seu jogo! A prática é essencial para fixar os conhecimentos e adquirir tantos outros com a experiência vivida. Gostei bastante da iniciativa dos níveis!

Obrigado por compartilhar seu projeto conosco, e lembre-se que você pode sempre contar com o fórum para tirar suas dúvidas e compartilhar sua evolução, adoramos saber o que você está estudando!

Um grande abraço e bons estudos!