Как я могу добавить несколько команд в моем операторе if? JavaScript - PullRequest
0 голосов
/ 04 апреля 2020

Мне кажется, что этот экземпляр действительно прост, и я, вероятно, слишком обдумываю его, но есть ли способ, где я могу добавить несколько утверждений в свое утверждение if? Я ищу что-то вроде: если бы я выбрал go в определенном направлении в моей игре, вы получили бы текст «Вы решили посетить магазин. Вы хотите исследовать?» И есть два варианта:

-Да, а затем в поле ввода вы наберете «Да», и тогда он выдаст результат «после исследования вы решили что-то купить»

-Нет, ты решил уйти.

Я пытался выяснить это более часа, и когда я был близко, команда все еще могла быть доступна, даже если вы не были в этом месте. Например. Место в моей игре было: «Вы в парке. И в поле ввода, если где-то случайно наберется« Да », команда вернется как« После изучения вы решили что-то купить »

Я хочу, чтобы, если вы находитесь в указанном c месте, этот код был доступен только в этом месте и больше нигде.

Так что, если вы были в парке как место и случайно набрали " да ", ничего не произойдет, потому что вы не в месте расположения магазина.

Вот мой код:

...

Укажите направление на go

<input id = "input" type = "text" placeholder = "Type 'Help1' for actions"/><button onClick = "button()">Confirm Action</button>
<p id = "message"></p>

<script>

  function button() {
    var textInput;
    var newInput = input.value;
    if (newInput == "North") {

      textInput = "you went to the Store. Do you explore?"; // <-- I'd like a way to put in "Yes" as a response which would print out a text saying "You explored the store and bought some food" //

      document.getElementById("message").innerHTML = textInput;

    }


    if (newInput == "North Again") {
      textInput = "you went to the Forest Home";
      document.getElementById("message").innerHTML = textInput;
    }

    if (newInput == "Help1") {
      textInput = "[Page 1 of 2. Type 'Help2' for page 2] Commands you can use: <ul><li>South</li><li>North</li><li>East</li><li>West</li><li>North Again</li><li>South again</li><li>West Again</li><li>East Again</li>";
      document.getElementById("message").innerHTML = textInput;
    }

    if (newInput == "Help2") {
      textInput = "[Page 2 of 2] Commands you can use: <li>North One More</li><li>East Once More</li><li>West Once More</li><li>South Once More</li>";
      document.getElementById("message").innerHTML = textInput;
    }
  }

</script>

</div>

<div id = "stat-box">
  <h2 align = "center">STATS</h2>
</div>

...

Ответы [ 2 ]

0 голосов
/ 04 апреля 2020

Базовый c подход к выполнению чего-либо подобного заключается в сохранении вашего игрового состояния в переменной, и каждый раз, когда пользователь запускает команду, вы изменяете игровое состояние. Проверьте этот код (он должен работать, если вы добавите его на свой сайт):

<script>

var state = "init" // Initialize the game state

function button() {
    var textInput;
    var newInput = input.value;

    if (state == "init") {
        // Handle commands when game state is in "init"

        if (newInput == "Help1") {
            textInput = "[Page 1 of 2. Type 'Help2' for page 2] Commands you can use: <ul><li>South</li><li>North</li><li>East</li><li>West</li><li>North Again</li><li>South again</li><li>West Again</li><li>East Again</li>";
            document.getElementById("message").innerHTML = textInput;
        } else if (newInput == "Help2") {
            textInput = "[Page 2 of 2] Commands you can use: <li>North One More</li><li>East Once More</li><li>West Once More</li><li>South Once More</li>";
            document.getElementById("message").innerHTML = textInput;
        } else if (newInput == "North") {
            textInput = "you went to the Store. Do you explore?";
            state = "store"
            document.getElementById("message").innerHTML = textInput;
        }

    } else if (state == "store") {
        // Handle commands when game state is in "store"

        if (newInput == "Yes") {
            textInput = "There's a giant dragon in the cereal asile. Do you fight it?";
            state = "dragon"
            document.getElementById("message").innerHTML = textInput;
        } else if (newInput == "No") {
            // Change the state to something else
        }

    } else if (state == "dragon") {
        // Handle commands when game state is in "dragon"

        if (newInput == "Yes") {
            textInput = "You slayed the dragon!";
            document.getElementById("message").innerHTML = textInput;
        } else if (newInput == "No") {
            textInput = "You got eaten";
            document.getElementById("message").innerHTML = textInput;
        }

    }
}

</script>
0 голосов
/ 04 апреля 2020

Посмотрите на структуру конечного автомата. Вам следует сохранять текущее состояние пользователя в игре и проверять его при каждом нажатии кнопки.

Шаблон проектирования конечного автомата проверит, где находится ваш игрок, и будет действовать соответственно.

    var state = 'asked_for_direction';
    if (state == 'asked_for_direction' && newInput == "North") {

      textInput = "you went to the Store. Do you explore? (Yes/No)";

      document.getElementById("message").innerHTML = textInput;
      state = 'north';
    }

    if (state == 'north' && newInput == "Yes") {
      textInput = "You explored the store and bought some food";

      document.getElementById("message").innerHTML = textInput;
      state = 'north_explored';
    }

    if (state == 'north' && newInput == "No") {
      textInput = "You decided to leave";

      document.getElementById("message").innerHTML = textInput;
      state = 'asked_for_direction';
    }


    if (state == 'north' && newInput == "North Again") {
      textInput = "you went to the Forest Home";
      document.getElementById("message").innerHTML = textInput;
      state = 'forest_home';
      // Add how many states as you want
    }

Я не знаю точную структуру вашей игры, но уверен, что вы можете расширить этот код.

...