Игра — Морская разведка

Наглядная демонстрация + видео-обзор
Саму игру можно затестить в этом посте ↓ (в нем же вы найдете примеры правил и исходящего сюжета)

Ключевая фишка — рисуем море / поле / лес при помощи emoji (смайликов).

Скачать примеры полей смайлов

При необходимости поменять фоновые смайлики на другие, воспользуйтесь «поиском с заменой» в блокноте. Ниже схематически привожу структуру команд. Подгоняйте её под себя. Заголовками выделю названия команд. Абзацами отдельные блоки. Начнем :-)

Ресурс - Морская разведка

В содержимом пустое поле (все смайлики одинаковые)

В примечании — массив правильных ответов (кораблей). Например:
А-2,Б-2,В-2,Г-5,А-6,Е-1,Д-5,Б-5,Л-7

Ресурс главный всего один, поэтому дальше будут только команды

Ресурс — случайные корабли

Важно! Создание такого ресурса позволит сделать вечнозеленую игру. Т.е. такую игру в которую ваши подписчики могут играть самостоятельно. Корабли будут расставляться случайным образом из ваших заготовок.

В содержимом построчно записываете комбинации кораблей. Комбинации даны только для примера:

А-2,Б-3,В-2,Г-5,А-6,Е-1,Д-5,Б-1,Л-7
А-3,Б-1,В-3,Г-4,А-5,Е-2,Д-6,Б-2,Л-3
А-2,Б-4,В-4,Г-3,А-6,Е-1,Д-5,Б-3,Л-2
А-2,Б-5,В-3,Г-2,А-4,Е-2,Д-5,Б-4,Л-1
А-1,Б-6,В-2,Г-1,А-2,Е-1,Д-5,Б-6,Л-3
А-2,Б-7,В-1,Г-6,А-1,Е-4,Д-5,Б-5,Л-2
А-1,Б-4,В-4,Г-7,А-2,Е-5,Д-5,Б-7,Л-6
А-2,Б-1,В-2,Г-3,А-3,Е-2,Д-5,Б-2,Л-5

Не забудьте записать номер ресурса. В примере номер ресурса 80407

1) Морская разведка - Очистить море

Событие: сообщение с текстом: очистить море.

Условие: Сотрудник аккаунта + Реакция на невыполнение:
Доступно только сотрудникам.

Действия:

1) Изменить ресурс сообщества с номером равным (подставить номер ресурса. Пусть будет: 14902) и для содержимого установить значение: (скопируйте поле смайлов из документа по ссылке выше).

2) Переменная %sea% = {get}14902|id|body{/get}.

3) Отправлено сообщение с текстом:

Текущая ситуация на море:
%sea%
Время выполнения команды: %run_time% сек. 

2) Морская разведка - Построить корабли - Комментарии

Использовать по желанию. Всё это может управляться только командой № 3 (сотрудниками сообщества).

Событие: Добавлен в приватный список подписчиков с названием:
построить корабли. Номер события: Х.

Опционально (только если есть ресурс с комбинациями). Нажимаем добавить секциюи добавлен в приватный список подписчиков с названием:
автопостроение. Номер события: Y

Действия:

1) Временной переменной %array%присвоить значение: {get}80407{/get}Данную переменную следует делать, только если вы намерены делать «вечнозеленую» игру.

2) Временной условной переменной %content% (лучше не менять название) присвоить значение:
{array}%array%|1|rand|col{/array}, если:

- Событие с номером Y есть среди текущих (запускается подписчиком при завершении игры). Данное условие следует делать, только если вы намерены делать «вечнозеленую» игру.
или
А-2,Б-2,В-2,Г-5,А-6,Е-1,Д-5,Б-5,Л-7, если:
Переменная {array}%content%|2|val|col{/array} = 0 (админ — дундук)
или (значение по умолчанию) ↓
{array}%content%|2|val|col{/array} = вторая строка поступающего от администратора сообщения (админ все сделал верно, или почти верно).

3) Изменить ресурс сообщества с номером равным 14902 и для примечания установить значение: %content%.

4) Изменить ресурс сообщества с номером равным 14902 и для содержимого установить значение: (скопируйте поле смайлов из документа по ссылке выше). + Берите действие из уже добавленных.

5) Отправлено сообщение с текстом:

Новый флот построен. Начинайте игру сначала! 🙃

3) Морская разведка - Построить корабли - Сообщения

Вспомогательная команда для нужд администратора.

Событие: Написал сообщение сообществу с текстом содержащим:
построить корабли

Условие: Сотрудник аккаунта + Реакция на невыполнение:
Доступно только сотрудникам. (Добавляйте из существующих!)

Действия: те же, что в команде 2 (с теми же номерами = добавлены из существующих), только последнее — «написать сообщение» вместо «написать комментарий», в котором при этом можно дописать переменную %content%. Пример нормального текста сообщения:

Новый флот построен. 
Установлены следующие корабли:
%content%

4) Морская разведка - Посмотреть море - Комментарии

Вспомогательная команда для игроков. Помогает посмотреть что там с морем, чтобы думать перед тем как проверять квадрат / стрелять / строить.

Событие: Написал комментарий в сообществе под постом c ID: 1566 (у вас будет другой номер поста! Но обязательно надо конкретный), с текстом содержащим: море.

Действия:

1) Переменная %sea% = {get}14902|id|body{/get}.

2) Написан комментарий в сообществе под постом c ID: %id_1% (+ в ответ на комментарий: %object_id%), содержащий текст:

Текущая ситуация на море:
%sea%
Время выполнения команды: %run_time% сек. 

Морская разведка - Проверить район - Комментарии

Главная команда игры :-)

Событие: Написал комментарий в сообществе под постом c ID: 1566 (у вас будет другой номер поста! Но обязательно надо конкретный), с текстом подходящим под регул. выраж: ^[А-Л]-[1-7]$.

Условия:

1) Переменная %reply_to% равна %reply_to% (значит, что это комментарий первого уровня, а не ответ на другой). Иначе (реакция на невыполнение) написать комментарий:

Можно проводить разведку только в комментариях первого уровня! Не в ответах на чужие или свои комментарии

2) Корабли еще есть (простой вариант игры):
Числ. переменная {array}{get}14902|id|note{/get}|0|count{/array} больше 0.
Иначе выполнить событие с номером Х (см. пункты 12, 13 ниже ↓). Именно номера этих действий нужно указать через запятую.

Условие 3 — опциональное. Данное условие следует делать, только если вы намерены делать «вечнозеленую» игру.

3) Корабли еще есть (вечнозеленая игра):
Числ. переменная {array}{get}14902|id|note{/get}|0|count{/array} больше 0.
Иначе выполнить действия с номерами Х (см. пункты 12, 13 ниже ↓). Именно номера этих действий нужно указать через запятую.

4) Корабль существует:
Числ. переменная
{array}{get}14902|id|note{/get}|%content%|num{/array} больше 0 (корабль или его часть найдена в примечании ресурса). Иначе (реакция на невыполнение) написать комментарий:

Вы не попали, %first_name%!
Попробуйте еще 🙃

Действия:

1) Переменная %sea% = {get}14902|id|body{/get}.

2) Переменная %letter% = {array}%content%|1|val|-{/array}.

3) Переменная %row_num% =
{math}{array}А,Б,В,Г,Д,Е,З,И,К,Л|%letter%|num{/array}+1{/math}. (Перечислил тут все возможные буквы как массив. После чего нашел порядковый номер элемента массива. И не нужно пилить длинные временные переменные) :-)

4) Переменная %row% = {array}%sea%|%row_num%|val|col{/array}.

5) Переменная %col% = {math}{array}%content%|2|val|-{/array} +1{/math}.

6) Переменная %new_row% = {array}%row%|%col%|val|:|⛵️{/array}.

7) Переменная %sea% = {array}%sea%|%row_num%|val|col|%new_row%{/array}.

8) Изменить ресурс сообщества с номером равным 14902 и для содержимого установить значение: %sea%.

9) Изменить ресурс сообщества с номером равным 14902 (не забудьте сменить на свой!) и для примечания удалить элемент массива: %content%.

10) Написан комментарий в сообществе под постом c ID: %id_1% (+ в ответ на комментарий: %object_id%), содержащий текст:

%first_name%, вы нашли корабль!

Текущая ситуация на море:
%sea%

Время выполнения команды: %run_time% сек. 

11) Временно можно добавить отладочную информацию:
Действие: «отправить сообщение» с опцией «сотрудникам» и текстом например:

Отладка:
Буква: %letter%
Номер строки: %row_num%
Номер столбца: %col%
Важно! Действия 12, 13 следует делать, только если вы намерены делать «вечнозеленую» игру. Их обязательно ставить на паузу.

12) Написан комментарий в сообществе под постом c ID: %id_1% (+ в ответ на комментарий: %object_id%), содержащий текст:

Победа что ли? Нет, вы только выиграли сражение. Вражеская мощь не дремлет, подкрепление врага на подходе. Бегите или сражайтесь, при следующем залпе на вас нападут новые враги 

13) Действие: «Выполнить событие» с номером Y, где Y — номер события
из команды 2 для расширенной игры (список — автопостроение).

Открыть скриншот команды.

Пожалуй это все. Если хотите выразить благодарность или оставить замечение, комментарии этого поста к вашим услугам. Творческих взлетов!

Вернуться на главную страницу инструкций
3748 views·68 shares