Как заменить часть переменной
В этом уроке вы увидите, как можно заменить часть переменной с помощью блока Условия. Это может быть полезно, например, для построения логики игры, или для назначения каких-либо бонусных условий клиенту.
Создадим игру
Давайте например построим игру, в которой мы заменяем содержимое рюкзака.
![](/assets/images/replace_variable_part_1-e7272551c44d569e25e62be6b80d613b.png)
Объявите переменную
Добавьте блок Условия. Скопируйте и вставьте в него:
$backpack = "меч, пустая бутылка, зуб дракона, цветок папоротника, пергамент"
![](/assets/images/replace_variable_part_2-c694db901a1ef08cffd3d03888fe10c2.png)
![](/assets/images/replace_variable_part_3-13f833cf6ad54609e757ff616505b0e1.png)
Вы создали переменную $backpack
(рюкзак) и записали в нее содержимое рюкзака.
Свяжите условие с новым экраном
Свяжите условие со следующим экраном. Для связи условия со следующим экраном, добавьте на него блок Текст. Скопируйте и вставьте в блок Текст:
Привет! У тебя в рюкзаке $backpack.
![](/assets/images/replace_variable_part_4-d4b9dbe2d4871666619d054a37936baa.png)
Теперь добавьте сюда же еще один блок Текст. Скопируйте и вставьте в него:
Ты стоишь у ручья. Прекрасная возможность, чтобы налить воды.
![](/assets/images/replace_variable_part_5-9a9ceec18f570160d17866d82cbee49a.png)
Добавьте на этот экран кнопку, скопируйте и вставьте в нее текст налить воды
Добавьте на этот же экран Интент. Скопируйте и вставьте в интент налить воды
![](/assets/images/replace_variable_part_6-19f261302713295a47e713256ba858b8.png)
Можете также использовать синтаксис шаблонов, чтобы добавить другие варианты фраз, которые может сказать пользователь.
Свяжите интент с новым экраном
Свяжите интент налить воды
со следующим экраном
Кнопку связывать не обязательно: для сценария нажатие кнопки и набор текста будут работать аналогично. Так что ввод с кнопки попадет в Интенты в любом случае, и будет работать связь от ин тентов.
Добавим на него блок Условия. Скопируйте и вставьте в блок Условия следующее:
$backpack = $backpack.replace ("пустая бутылка", "бутылка воды")
![](/assets/images/replace_variable_part_7-6b6b0290faa240e55e56929e8b660d31.png)
![](/assets/images/replace_variable_part_8-0d06172119a021c88b7e36dc53a64764.png)
-
.replace работает только со строками.
-
Если вы скопируете в ваш сценарий строку из этого урока,
.replace
заменит только первый элемент. Например, если у вас бутылка воды и стакан воды, то после использования условия$backpack= $backpack.replace
(«воды», «вина») у вас будет бутылка вина и стакан воды.
Если вам нужно заменить несколько одинаковых элементов, то используйте запись такого вида:
$backpack= $backpack.replace (/воды/g, "вина")
В этом случае, все элементы «воды» будут заменены на «вина». И если у вас была бутылка воды и стакан воды, то будет бутылка вина и стакан вина.
Таким образом, мы редактируем саму переменную, заменяя ее часть. Затем, так как мы фактически не можем редактировать существующую переменную, мы вынуждены ее пересоздать. Присваиваем значение этой же переменной с помощью оператора =
Свяжите условие с блоком Текст
Свяжите условие со следующим блоком Текст, в который напишите:
Готово! Теперь у тебя в рюкзаке $backpack.
![](/assets/images/replace_variable_part_9-d1858463fb3062eccb067764574cb96d.png)
Как выглядит готовый сценарий
Вот весь кусочек сценария полностью:
![](/assets/images/replace_variable_part_10-95c25643c1f7d402ae083007d3239342.png)
Сохраните сценарий и нажмите Тестировать. Теперь вы видите, что сначала у пользователя пустая бутылка, а после выполнения .replace
часть переменной заменяется и пустая бутылка превращается в бутылку воды.
![](/assets/images/replace_variable_part_11-37fac9dad68db893f856415c2d94b618.png)