2
respostas

Eu fiz esse pequeno jogo, mas deu errado e eu não descubro porque.

<meta charset="utf-8">
<script type="text/javascript">

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

    function mostra(frase) {
        document.write(frase);
        pula();
    }

    function titulo(t1) {
        document.write("<h1>" + t1 + "</h1>");

    }

    function red(r1) {

        return (Math.round(r1));
    }

    function oq(q1) {

        return parseInt(prompt(q1));
    }

    var aceito = prompt("Um goblim te ataca e vai te matar, porém ele quer provar ser mais esperto que vocé, entam ele te desafia. vocé aceita? sim ou não");

    if (aceito == "sim") {

        var x1 = prompt("ele fica felis e manda o desafio, 'eu aposto que sei o numero que vocé esta pensando de 1 a 10' que numero vocé esta pensando?");

        if (x1 == 1 && 2 && 4 && 5 && 6 && 7 && 8 && 9 && 10) {

            var x2 = prompt("ele dis 'aposto que foi 3, não é?' responda com sim ou não");

            if (x2 == "não") {

                alert("serio! haaaa, certo então pode ir embora");

                mostra("Parabens, vocé ganhou!");
                mostra("final 4, 'O genio'");
                titulo("vitoria!!!");
            }

            if (x2 == "sim") {

                alert("Eu sabia! HAHAHAHA, agora estou de bom humor então pode ir embora");

                mostra("Parabens, vocé ganhou!");
                mostra("final 3, 'O bom samaritano'");
                titulo("vitoria!!!");
        }

        if (x1 == 3) {

            var x2 = prompt("ele dis 'aposto que foi 3, não é?' responda com sim ou não");

            if (x2 == "não") {

                alert("serio! haaaa, certo então pode ir embora");

                mostra("vocé recebeu um raio na cabeça, ele pode não saber que vocé mentiu, mas eu sei.");
                mostra("final 5, 'O mentiroso'");
                titulo("derrota!!!");
            }

            if (x2 == "sim") {

                alert("Eu sabia! HAHAHAHA, agora estou de bom humor então pode ir embora");

                mostra("Parabens, vocé ganhou!");
                mostra("final 1, 'O homem justo'");
                titulo("vitoria!!!");
            }

        }

    }


    if (aceito == "não") {

        alert("'Então morra!!!' dis o goblim irritado, logo depois o goblim te ataca, mas ele topeça, bate a cabeça e morre.");

        mostra("Parabens vocé ganhou!");
        mostra("final 2, 'Moral inquebravel'");
        titulo("vitoria!!!");
    }

</script>
2 respostas

Ola Kevenn. Estou no início do meu curso, mas acho que identifiquei algumas coisas no seu código que podem causar problemas. Alguns são problemas de sintaxe outros de lógica Por exemplo, o seu primeiro if foi aberto mas nunca foi fechado. Outra exemplo é como você pede para o usuário apresentar um valor e o armazena na variável x1, pedindo para o programa verificar se o valor inserido é qualquer um de 1 a 10 menos o 3. Entretanto, mesmo que o usuário tivesse digitado 3, não haveria impacto no seu if x1=3 justamente pq o usuário que vai informar se se a condição é verdadeira através de uma string, ou seja, um texto.

Se eu entendi o que você quis fazer, você queria que o programa detectasse se o usuário realmente havia digitado 3, e o personagem o pegaria na mentira. Mas pode também não ter sido isso, já que o seu texto se repete. Então o que eu fiz foi tentar simplificar o código para que a resposta colocada pelo usuário fosse a única coisa relevante para ser checada pela condição if

 var aceito = prompt("Um goblin te ataca e vai te matar. Porém ele quer provar ser mais esperto que vocé, então ele te desafia. vocé aceita? Sim ou não.");

    if (aceito == "nao") {

        alert("'Então morra!!!' Diz o goblin irritado. Logo depois o goblin te ataca, mas ele tropeça, bate a cabeça e morre.");

        mostra("Parabéns você ganhou!");
        mostra("final 2, 'Moral inquebrável'");
        titulo("Vitória!!!");
    }
    else {

        prompt("Ele fica feliz e manda o desafio: 'Eu aposto que sei o número que você está pensando de 1 a 10', pense em um número");

        var x1 =  prompt("Ele diz 'aposto que foi 3, não foi?' Responda com sim ou não.");

            if (x1 == "sim") {


                alert("Eu sabia! HAHAHAHA, agora estou de bom humor então pode ir embora");

                mostra("Parabéns, você ganhou!");
                mostra("final 3, 'O bom samaritano'");
                titulo("Vitória!!!");
            }

            else {

                alert("Sério!? Haaaa, certo, então pode ir embora.");

                mostra("Parabéns, você ganhou!");
                mostra("final 4, 'O gênio'");
                titulo("Vitória!!!");
    }
}

Também dei uma mexida nas frases por questão de gramática e retirei o ~ dos ifs apenas para garantir que não teria erro pelos caracteres especiais , mas acho que nada te impede de colocar de volta kkkkk

Perfeito!

Corrigiu até a questão da gramática... Meus parabéns Kevenn e Victor!