1
resposta

[Projeto] Exercício Jogo Adivinhação (+ Aperfeiçoamento no Jogo)

Boa noite, pessoal. Depois de vários testes e tentativas, finalizei o código do meu jogo. Ficou assim:

<meta charset="UTF-8">

<script>

    function pulaLinha() {
        document.write("<br>");
    }

    function mostra(frase) {
        document.write(frase);
        pulaLinha();
        alert(frase);
    }

    var numeroAleatorio = Math.round(Math.random() * 10);

    for(tentativa = 2; tentativa >= 0; tentativa--) {
        var numeroTentativa = parseInt(prompt("Digite um número de 1 a 10."));

        if (numeroTentativa == numeroAleatorio) {
            mostra("Parabéns! Você acertou! O número é " + numeroAleatorio + ".");
            mostra("FIM!");
            break;

        } else {

            if (numeroTentativa > numeroAleatorio) {
                mostra("Você errou! Seu número é MAIOR do que o meu.");
                mostra("Você tem " + tentativa + " tentativa(s)!");
            } else {
                mostra("Você errou! Seu número é MENOR do que o meu.")
                mostra("Você tem " + tentativa + " tentativa(s)!");
            }
        }

        if (tentativa == 0) {
            mostra("GAME OVER!");
            mostra("O número correto é " + numeroAleatorio + ".");
        }

    }

</script>

Porém, senti uma grande necessidade de acrescentar algumas ferramentas para ter algumas regras ao jogar, como:

  • Ter controle em que o jogador só colocará números de 1 a 10 e não outra coisa.
  • Que seja possível Cancelar o jogo.
  • E que quando errar o número de 1 a 10, no sentido de por outra coisa, que não 'coma' a tentativa de jogo.

Com isso, infelizmente, tive que procurar no Chat GPT pra me informar desses detalhes, ficando assim o código:

<meta charset="UTF-8">

<script>

    function pulaLinha() {
        document.write("<br>");
    }

    function mostra(frase) {
        document.write(frase);
        pulaLinha();
        alert(frase);
    }

    var numeroAleatorio = Math.floor(Math.random() * 10) + 1; // Gera um número entre 1 e 10

    for (var tentativa = 3; tentativa > 0; tentativa--) {
        var entrada = prompt("Digite um número de 1 a 10.");

        if (entrada === null) {
            mostra("Jogo interrompido pelo usuário.");
            break;
        }

        var numeroTentativa = parseInt(entrada);

        if (isNaN(numeroTentativa) || numeroTentativa < 1 || numeroTentativa > 10) {
            mostra("Entrada inválida! Digite um número de 1 a 10.");
            tentativa++; // Incrementa para anular a decrementação
            continue;
        }

        if (numeroTentativa === numeroAleatorio) {
            mostra("Parabéns! Você acertou! O número é " + numeroAleatorio + ".");
            mostra("FIM!");
            break;
        } else {
            if (numeroTentativa > numeroAleatorio) {
                mostra("Você errou! Seu número é MAIOR do que o meu.");
            } else {
                mostra("Você errou! Seu número é MENOR do que o meu.");
            }
            mostra("Você tem " + (tentativa - 1) + " tentativa(s) restante(s)!");
        }
    }

    if (tentativa === 0) {
        mostra("GAME OVER!");
        mostra("O número correto era " + numeroAleatorio + ".");
    }

</script>

O engraçado que ele usou === em certos pontos e o +1 depois do Math.random, que nesse caso, diz ele, que é pra realmente arredondar de forma correta.

Obrigado até aqui.

1 resposta

Oi Patrick, tudo bem com você?

Obrigada por compartilhar e seu projeto e o aperfeiçoamento que realizou. Parabéns por todo seu esforço e dedicação, continue assim!

Se surgir qualquer dúvida, estou à disposição.

Abraços e bons estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software