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

[Projeto] Jogo da adivinhação

Boa noite, aqui está o desenvolvimento do meu jogo da adivinhação, talvez tenha ficado maior que o esperado, mas não sei como melhorar o código.

<meta charset="UTF-8">
<script>
    var iniciar = 's';

    do {
        iniciar = prompt("Olá, vamos brincar de adivinha? Digite S para sim ou N para não");

        while (iniciar.toLowerCase() != 's'&& iniciar.toLowerCase() != 'n'){
            iniciar = prompt("Por favor, digite apenas S ou N");
        }

        if (iniciar.toLowerCase() == 's'){
            alert("Então vamos lá, mas se liga que você só tem 3 tentativas!");

            var numeroPensado = Math.round(Math.random() * 10);
            console.log(numeroPensado); //comando adicionado apenas para fins de testes.
            var tentativa = 2;

            var chute = parseInt(prompt("Hora de arriscar, escolha um número de 0 à 10 "));

            while(tentativa >=0){

                if (chute == numeroPensado){

                    alert("Parabéns, você acertou! O número pensado foi: "+numeroPensado);
                    break;
                } else if (tentativa == 0){
                    alert("Xiii, você errou! Acabaram suas tentativa(s).");
                    alert(" O número pensado nesta rodada foi: "+numeroPensado);
                } else{
                    chute = parseInt(prompt("Xiii, você errou! Você tem mais "+tentativa+" tentativa(s). Digite seu palpite: "));
                }
                tentativa--;
            }
        } else {
            alert("Que pena, volte quando quiser brincar um pouco!");
        }

        iniciar = prompt("Deseja jogar novamente? Digite S para sim ou N para não");
    } while (iniciar.toLowerCase() === 's');

    alert("Até a próxima");
</script>

Dei uma personalizada no código, adicionando uma pergunta se o usuário quer ou não jogar e algumas interações nas mensagens

2 respostas
solução!

O código anterior é funcional, porém acabei percebendo um problema no código, no ponto de encerramento, o programa pergunta se quer jogar novamente e caso escolha sim, ele executava a primeira pergunta de novo ficando redundante, removi também a variável iniciar = 's' declarada após a tag script, na refatoração acabei esquecendo de apagá-la. Então segue o código corrigido:

<script>

    iniciar = prompt("Olá, vamos brincar de adivinha? Digite S para sim ou N para não");

    while (iniciar.toLowerCase() !== 's'&& iniciar.toLowerCase() !== 'n'){
        iniciar = prompt("Por favor, digite apenas S ou N");
    }

    do {
        if (iniciar.toLowerCase() === 's'){
            alert("Então vamos lá, mas se liga que você só tem 3 tentativas!");

            var numeroPensado = Math.round(Math.random() * 10);
            console.log(numeroPensado); //comando adicionado apenas para fins de testes.
            var tentativa = 2;

            var chute = parseInt(prompt("Hora de arriscar, escolha um número de 0 à 10 "));

            while(tentativa >=0){

                if (chute === numeroPensado){

                    alert("Parabéns, você acertou! O número pensado foi: "+numeroPensado);
                    break;
                } else if (tentativa === 0){
                    alert("Xiii, você errou! Acabaram suas tentativa(s).");
                    alert(" O número pensado nesta rodada foi: "+numeroPensado);
                } else{
                    chute = parseInt(prompt("Xiii, você errou! Você tem mais "+tentativa+" tentativa(s). Digite seu palpite: "));
                }
                tentativa--;
            }
        } else {
            alert("Que pena, volte quando quiser brincar um pouco!");
            break;
        }

        iniciar = prompt("Deseja jogar novamente? Digite S para sim ou N para não");
    } while (iniciar.toLowerCase() === 's');

    alert("Até a próxima");
</script>

Olá, Willian! Tudo bem?

Parabéns pelo desenvolvimento do seu jogo da adivinhação! O código está bem organizado e fácil de entender.

Bons estudos!