3
respostas

Dificuldade com if e function

Estou tentando criar um jogo de texto, apenas para praticar, porem quando insiro a resposta nada acontece.

<meta charset="UTF-8">

<b>Nesta gloriosa aventura você irá desbravar campos e locais inexplorados, portanto tenha muito cuidado com suas ações.</b>
<br><br>
Você vaga perdido em um bosque e nota algumas coisas no cenário a sua volta, uma planta possui frutos próximo ao chão, há uma pedra no canto da trilha boa para descansar e que a trilha para seguir o caminho não é tão árdua para prosseguir
<br>
<br>
Escolha uma das opções, A - comer uma das frutas, B - inspecionar as frutas antes de comer, C - sentar na pedra para descansar um pouco, D - seguir a trilha.

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

    function mostra(frase) {
        document.write(frase);
    }
    function botao() {
        pulaLinha();
        mostra("<input/> <button>Faça sua escolha</button>");

    }

    escolhas1();
    function escolhas1() {

        botao();
        var escolha = document.querySelector("input");
        escolha.onclick = escolha;

        if(escolha == a) {
            mostra("As frutas são extremamente amargas e horríveis, devido a um espasmo inesperado com o sabor você escorrega em uma poça de lama e bate a cabeça na pedra e desmaia.")
        }
        if(escolha == b){
            mostra("Você colhe uma das frutas e olha atentamente para ela, mas não nota uma cobra escondida pouco acima da planta em que elas crescem, ela se joga encima de você. No susto você tenta correr sem olhar para a direção e tropeça na pedra cai de uma encosta e bate a cabeça e morre.")
        }
        if(escolha == c){
            mostra("")
        }
       if(escolha == c){
           mostra("")
       }
    }


</script>
3 respostas
if (condição1) {
    // bloco de código ao ser executado se a condição 1 for verdadeira
} else if (condição2) {
    // bloco de código ao ser executado se a condição 2 for verdadeira
} else if (condição3) {
    // bloco de código ao ser executado se a condição 3 for verdadeira
} else {
    // bloco de código ao ser executado se nenhuma condição for verdadeira
}

Para mais informações, você pode verificar em: https://www.w3schools.com/java/java_conditions.asp#:~:text=Java%20has%20the%20following%20conditional,the%20first%20condition%20is%20false

Editei a parte dos if, porem ainda sim o quando insiro no input um " a ", ainda sim nada acontece.

    function escolhas1() {

        botao();
        var escolha = document.querySelector("input");
        escolha.onclick = escolha;

        if(escolha == a) {
            mostra("As frutas são extremamente amargas e horríveis, devido a um espasmo inesperado com o sabor você escorrega em uma poça de lama e bate a cabeça na pedra e desmaia.")
        }
        else if(escolha == b){
            mostra("Você colhe uma das frutas e olha atentamente para ela, mas não nota uma cobra escondida pouco acima da planta em que elas crescem, ela se joga encima de você. No susto você tenta correr sem olhar para a direção e tropeça na pedra cai de uma encosta e bate a cabeça e morre.")
        }
        else if(escolha == c){
            mostra("")
        }
       else if(escolha == c){
           mostra("")
       }
    }

Olá, não tenho certeza se o botão pode ser introduzido dessa forma, pois mesmo que ele apareça na página não acho que a interação com o querySelector seja a mesma, mas talvez seja possível e eu não saiba, então resolvi do modo que aprendi. O que fiz foi colocar o botão para o html, e chamar a função escolha para o acionamento do botão, criando também um querySelector para o botão. Em escolhas1, mudei "escolha" para "escolha.value" para pegar o valor contido no imput e não referência para o input, e no lugar de == a , usei == "a", para ele comparar com a letra a, e não com a variável a (que não existe).

<meta charset="UTF-8">

<b>Nesta gloriosa aventura você irá desbravar campos e locais inexplorados, portanto tenha muito cuidado com suas ações.</b>
<br><br>
Você vaga perdido em um bosque e nota algumas coisas no cenário a sua volta, uma planta possui frutos próximo ao chão, há uma pedra no canto da trilha boa para descansar e que a trilha para seguir o caminho não é tão árdua para prosseguir
<br>
<br>
Escolha uma das opções, A - comer uma das frutas, B - inspecionar as frutas antes de comer, C - sentar na pedra para descansar um pouco, D - seguir a trilha.
<br>
<input/> <button>Faça sua escolha</button>


<script>
    // tirei esses da função
    pulaLinha();
    var escolha = document.querySelector("input");

    var botao = document.querySelector("button");

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

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

    function escolhas1() {
        console.log(escolha.value);
        if(escolha.value == "a") {
            mostra("As frutas são extremamente amargas e horríveis, devido a um espasmo inesperado com o sabor você escorrega em uma poça de lama e bate a cabeça na pedra e desmaia.")
        }
        if(escolha.value  == "b"){
            mostra("Você colhe uma das frutas e olha atentamente para ela, mas não nota uma cobra escondida pouco acima da planta em que elas crescem, ela se joga encima de você. No susto você tenta correr sem olhar para a direção e tropeça na pedra cai de uma encosta e bate a cabeça e morre.")
        }
        if(escolha.value == "c"){
            mostra("")
        }
       if(escolha.value == "d"){
           mostra("")
       }
    }

botao.onclick = escolhas1;

</script>