Справочник настроек
Это полный справочник всех настроек игры TacticToy. Здесь описаны параметры поля, настройки инициализации, игровые правила, контроль времени и порядок ходов — всё, что можно настроить при создании игры.
Для более простого введения в игру см. Описание игры.
Параметры поля
Эти четыре параметра определяют форму и структуру поля. Они задаются перед началом игры и не могут быть изменены в процессе.
Длина стороны (S)
Диапазон: 2–16
Длина стороны каждого блока. Блок с длиной стороны S — это сетка S×S в 2D, куб S×S×S в 3D или тессеракт S×S×S×S в 4D.
| Сторона | Клеток в блоке (2D) | Характер |
|---|---|---|
| 2 | 4 | Быстро, минимум ничьих |
| 3 | 9 | Классический размер |
| 4 | 16 | Больше пространства |
| 5 | 25 | Приближение к Гомоку |
| 15 | 225 | Стандартное поле Гомоку |
Большая длина стороны делает блоки труднее для выигрыша, а партии — длиннее. Также остаётся больше места для нескольких команд.
Длина победной линии (L)
Диапазон: 2–S (не может превышать длину стороны)
Количество отметок в ряд, необходимое для захвата блока. Линии могут быть горизонтальными, вертикальными или диагональными (включая 3D и 4D диагонали в высших измерениях).
Когда L равно S (по умолчанию), нужно заполнить целый ряд/столбец/диагональ — как в классических крестиках-ноликах. Когда L < S, появляется больше возможных выигрышных линий, блоки легче захватить.
Примеры:
- L=3, S=3 — классические правила, нужно заполнить полный ряд/столбец/диагональ
- L=3, S=5 — любые три последовательные отметки в линии побеждают, гораздо больше выигрышных позиций
- L=5, S=15 — правила Гомоку (пять в ряд на большом поле)
Выигрышные линии в разных измерениях (для одного блока с S=3, L=3):
| Измерения | Направления | Всего выигрышных линий |
|---|---|---|
| 2D | Ряды, столбцы, 2 диагонали | 8 |
| 3D | Ряды, столбцы, диагонали по всем 3 осям | 49 |
| 4D | Все оси и перекрёстные диагонали | 272 |
Глубина вложенности (N)
Диапазон: 1–4
Количество уровней вложенности. Это самый отличительный параметр TacticToy.
- N=1 — одно плоское поле, как классические крестики-нолики или Гомоку. Механика доступной зоны не действует.
- N=2 — блоки внутри поля (Ultimate Tic-Tac-Toe). Активируется механика доступной зоны: ваш ход внутри блока определяет, в каком блоке должен играть соперник.
- N=3 — блоки внутри блоков внутри поля. Ограничение каскадно распространяется через все уровни.
- N=4 — четыре уровня вложенности.
Общее количество клеток нижнего уровня (2D):
| Сторона | N=1 | N=2 | N=3 | N=4 |
|---|---|---|---|---|
| 2 | 4 | 16 | 64 | 256 |
| 3 | 9 | 81 | 729 | — |
| 4 | 16 | 256 | — | — |
| 5 | 25 | 625 | — | — |
Клетки с «—» превышают максимальный предел объёма (см. Ограничения ниже).
Доступная зона на разных глубинах
При N=1 ограничений нет — игроки могут играть где угодно.
При N=2 позиция клетки игрока внутри блока напрямую определяет обязательный блок соперника. Например, ход в правую верхнюю клетку отправляет соперника в правый верхний блок.
0 1 2 3 4 5 6 7 8
0 _ _ _ | _ _ _ | _ _ _ X играет на (4, 1):
1 _ _ _ | _ X _ | _ _ _ позиция внутри блока = (1, 1)
2 _ _ _ | _ _ _ | _ _ _ → O должен играть в блоке (1, 1)
_______|_______|_______
3 _ _ _ |[_ _ _]| _ _ _
4 _ _ _ |[_ _ _]| _ _ _ [ ] отмечает обязательную зону
5 _ _ _ |[_ _ _]| _ _ _
_______|_______|_______
6 _ _ _ | _ _ _ | _ _ _
7 _ _ _ | _ _ _ | _ _ _
8 _ _ _ | _ _ _ | _ _ _
При N=3 ограничение работает одновременно на двух уровнях. Позиция клетки внутри внутреннего блока определяет, в какой блок среднего уровня попадает соперник, а внутри него — в какой внутренний блок он должен играть.
0 1 2 3 4 5 6 7
0 _ _ | _ _ || _ _ | _ _ X играет на (5, 1):
1 _ _ | _ _ || _ X | _ _ позиция во внутреннем блоке = (0, 1)
_____|_____||_____|_____ позиция блока среднего уровня = (1, 0)
2 _ _ | _ _ ||[_ _]| _ _ → O должен играть в блоке верхнего уровня (1, 0),
3 _ _ | _ _ ||[_ _]| _ _ блоке среднего уровня (0, 1)
_____|_____||_____|_____
_____|_____||_____|_____
4 _ _ | _ _ || _ _ | _ _
5 _ _ | _ _ || _ _ | _ _
_____|_____||_____|_____
6 _ _ | _ _ || _ _ | _ _
7 _ _ | _ _ || _ _ | _ _
Свободные ходы
Когда доступная зона отправляет игрока в блок без свободных клеток (потому что он выигран и заблокирован, или все клетки заполнены), игрок получает свободный ход — может играть в любом блоке с открытыми клетками. Это применяется на каждом уровне глубины: если доступная зона приводит к заполненной области на любом уровне, соответствующее ограничение снимается.
Измерения (D)
Диапазон: 2–4
Количество пространственных измерений.
- D=2 — стандартное плоское поле. Клетки имеют координаты (x, y).
- D=3 — куб. Клетки имеют координаты (x, y, z). Выигрышные линии могут проходить по любой из трёх осей или через 3D-диагонали.
- D=4 — тессеракт. Клетки имеют координаты (x, y, z, t). Количество возможных выигрышных направлений резко возрастает.
Высшие измерения добавляют не просто больше клеток — они добавляют принципиально новые направления линий, которые не существуют в меньших измерениях. В 3D есть пространственные диагонали от угла до угла куба. В 4D есть гипердиагонали, не имеющие 3D-аналогов.
Отображение адаптируется к числу измерений:
- 2D-поля показываются как одна сетка
- 3D-поля — как 2D-слои рядом (по одному на каждую координату Z)
- 4D-поля — как матрица 2D-слоёв (по координатам Z и T)
Ограничения параметров
Четыре параметра поля не независимы — они подчиняются глобальным ограничениям, обеспечивающим играбельность:
| Ограничение | Формула | Предел |
|---|---|---|
| Длина стороны | S | ≤ 16 |
| Граница (сторона на нижнем уровне) | S^N | ≤ 100 |
| Объём (всего клеток) | S^(N×D) | ≤ 1000 |
Ограничение границы не позволяет полю стать слишком большим для навигации. Ограничение объёма ограничивает общее число клеток для вычислительной обоснованности.
Эти ограничения взаимодействуют: увеличение одного параметра может заставить другой уменьшиться. UI игры обеспечивает это автоматически — при изменении одного параметра остальные приводятся к допустимым диапазонам.
Практические примеры:
- S=3, N=3, D=2: граница = 27, объём = 729 — допустимо
- S=3, N=4, D=2: граница = 81, объём = 6561 — превышает предел объёма
- S=4, N=2, D=3: граница = 16, объём = 4096 — превышает предел объёма
- S=3, N=2, D=3: граница = 9, объём = 729 — допустимо
Конфигурация команд
Количество команд
Диапазон: 2–4
Каждая команда имеет уникальный символ и цвет:
| Команда | Символ | Цвет |
|---|---|---|
| Команда 0 | X (Крестик) | Синий |
| Команда 1 | O (Нолик) | Красный |
| Команда 2 | Δ (Треугольник) | Золотой |
| Команда 3 | ▢ (Квадрат) | Фиолетовый |
Больше команд лучше работает на полях большего размера, где есть место для всех. На стандартном поле 3x3 четыре команды оставят очень мало ходов каждому игроку.
Режимы порядка ходов
Последовательный (по умолчанию) — команды ходят в фиксированном порядке: Команда 0, Команда 1, Команда 2, …, затем снова Команда 0. Если команда дисквалифицирована (сдалась или просрочила время), её ходы пропускаются.
Одновременный — все команды должны сделать по одному ходу за раунд, но могут ходить в любом порядке внутри раунда. Когда каждая активная команда сходила, начинается новый раунд. Этот режим актуален для онлайн-мультиплеера, когда не нужно строго соблюдать порядок.
Порядок внутри команды
Когда несколько игроков в одной команде (в онлайн-мультиплеере):
По очереди (по умолчанию) — игроки внутри команды чередуются в фиксированном порядке. Например, при последовательном порядке команд с 1 игроком A в команде X и игроками B и C в команде O, получается такой порядок ходов:
- Команда X Игрок A,
- Команда O Игрок B,
- Команда X Игрок A,
- Команда O Игрок C,
- затем снова с шага 1.
Гибкий — любой игрок команды может сделать ход за команду. Кто первый — тот и ходит.
Настройки инициализации
Эти настройки добавляют элементы на поле до первого хода. Они могут создавать асимметричные стартовые позиции, добавлять стратегические препятствия или размещать отметки заранее.
Симметричные препятствия
Тип: вкл/выкл (по умолчанию: выкл)
Размещает клетки-препятствия (#) в «неподвижных точках» — клетках, где относительная позиция клетки внутри блока совпадает с позицией блока внутри его родителя. Каждый блок получает ровно одно препятствие, и позиция препятствия внутри каждого блока отражает позицию самого блока на поле.
Например, на поле 3x3 с глубиной 2: блок (0,0) получает препятствие в клетке (0,0) — верхний левый угол верхнего левого блока. Блок (1,0) получает препятствие в клетке (1,0) — средний столбец, верхний ряд. Блок (2,2) — препятствие в клетке (2,2) — нижний правый угол нижнего правого блока. И так далее.
Это создаёт симметричный паттерн, где каждый блок затронут одинаково. Действует только при глубине ≥ 2 (при глубине 1 нет родительских блоков для сравнения).
0 1 2 3 4 5 6 7 8 Симметричные препятствия на поле 3x3, глубина 2.
0 # _ _ | _ # _ | _ _ # Каждый блок имеет ровно одно препятствие.
1 _ _ _ | _ _ _ | _ _ _ Позиция препятствия внутри блока
2 _ _ _ | _ _ _ | _ _ _ совпадает с позицией блока на поле.
_______|_______|_______
3 _ _ _ | _ _ _ | _ _ _ Блок (0,0): препятствие в клетке (0,0)
4 # _ _ | _ # _ | _ _ # Блок (1,0): препятствие в клетке (1,0)
5 _ _ _ | _ _ _ | _ _ _ Блок (2,0): препятствие в клетке (2,0)
_______|_______|_______ Блок (0,1): препятствие в клетке (0,1)
6 _ _ _ | _ _ _ | _ _ _ ...и так далее.
7 _ _ _ | _ _ _ | _ _ _
8 # _ _ | _ # _ | _ _ #
Случайные препятствия
Диапазон: 0–9 (по умолчанию: 0)
Разбрасывает клетки-препятствия случайным образом по полю. Значение плотности контролирует количество: примерно значение / 2 препятствий на блок. При значении 0 препятствия не размещаются.
Препятствия распределяются по всем блокам с некоторой рандомизацией.
Разведчики
Диапазон: 0–9 (по умолчанию: 0)
Как случайные препятствия, но вместо нейтральных блокеров разведчики размещают отметки команд — чередуя между командами, с равным количеством на каждую. Это даёт каждой команде начальный плацдарм на поле до первого настоящего хода.
При 2 командах и значении разведчиков 4 размещается примерно 2 отметки X и 2 отметки O на блок. Позиции рандомизированы, создавая асимметричные стартовые позиции.
Разведчики взаимодействуют с системой обнаружения победы: если разведчики случайно выстроятся в линию, блок может быть выигран ещё до начала игры.
Игровые правила
Блокировка захваченных блоков
Тип: вкл/выкл (по умолчанию: выкл)
Когда блок выигран (игрок завершает линию), это правило заполняет все оставшиеся пустые клетки защищёнными клетками (%). Дальнейшие ходы там невозможны.
Без блокировки: пустые клетки в выигранном блоке остаются доступными. Другие игроки могут ставить туда отметки, хотя принадлежность блока уже определена. Это важно потому что:
- Доступная зона может отправлять игроков туда
- Игроки могут использовать эти клетки, чтобы влиять на то, куда будет отправлен их соперник
С блокировкой: выигранный блок запечатывается. Если доступная зона отправляет игрока в заблокированный блок, он получает свободный ход.
До блокировки: После блокировки:
X _ _ X % %
X _ _ X выигрывает → X % %
X _ _ этот блок X % %
Это значительный стратегический рычаг. С блокировкой захват блоков создаёт постоянные ограничения на поле. Без блокировки выигранные блоки всё ещё служат транзитными точками для механики доступной зоны.
Правило Кю
Тип: вкл/выкл (по умолчанию: выкл)
Предотвращает повторяющуюся игру, запрещая игроку отправлять соперника в один и тот же блок три раза подряд. Название правила Кю 窮 означает «истощение» или «удушение». Это тематическая отсылка к правилу Ко в игре Го, которое означает «вечность» или «повторение» и предотвращает бесполезные рекурсивные ходы.
Как это работает:
- Игра отслеживает последние два блока, в которые каждая команда была отправлена.
- Перед принятием хода игра проверяет, не отправит ли он соперника в тот же блок в третий раз подряд.
- Если да, и существуют как минимум два альтернативных блока с другими направлениями, ход отклоняется.
- Если альтернатив нет (все допустимые ходы ведут к одному направлению), ход разрешается — правило является мягким ограничением.
Пример: Если Команда 0 отправляла Команду 1 в блок (1,1) последние два хода, следующий ход Команды 0 должен целиться в другой блок — если только нет менее двух альтернативных направлений.
История кю сбрасывается, когда игрок получает свободный ход (отправлен в заполненный блок).
Это правило применяется только при глубине ≥ 2 (при глубине 1 доступной зоны не существует).
Условие победы
Два режима определяют, как выигрывается игра:
Высший знак (по умолчанию)
Классическое правило: выстройте линию из L отметок, чтобы захватить блок. Когда блок захвачен, отметка победившей команды поднимается на родительский уровень. Игра продолжается, пока кто-то не выстроит линию на верхнем уровне — или пока не закончатся возможные ходы (ничья).
На каждом уровне иерархии блоки выигрываются линиями. Игра выигрывается линией выигранных блоков на верхнем уровне.
Большинство
Альтернативное условие победы для глубоких полей (глубина ≥ 2). Вместо линии выигранных блоков на верхнем уровне команда побеждает, контролируя более половины всех блоков.
- Блоки всё ещё выигрываются линиями (как в режиме Высшего знака).
- Но на верхнем уровне первая команда, захватившая более 50% блоков, побеждает.
- Для верхней сетки 3x3 (9 блоков) команде нужно 5 для победы.
- Линии выигранных блоков на верхнем уровне не считаются победой в этом режиме.
Этот режим существенно меняет характер игры. В режиме Высшего знака три блока в правильном расположении могут выиграть игру; в режиме Большинства нужен широкий контроль. Он вознаграждает постепенное накопление, а не хитрое позиционирование.
При глубине 1 (без блоков) режим Большинства возвращается к поведению Высшего знака — линии единственный способ победить.
Контроль времени
Ограничение времени
Значения: отключено, 10с, 30с, 1м, 5м, 15м, 30м, 1ч, 3ч, 6ч, 12ч, 24ч
Устанавливает максимальное время на ход. Когда игрок превышает лимит, последствие тайм-аута определяет, что произойдёт. При отключении (по умолчанию) игроки могут думать сколько угодно.
Последствие тайм-аута
Что происходит, когда у игрока заканчивается время:
Поражение (по умолчанию) — команда дисквалифицируется. Если осталась только одна команда, она побеждает. Стандартное соревновательное поведение.
Случайный ход — за просрочившую команду делается случайный допустимый ход. Игра продолжается. Это поддерживает игру, но может поставить просрочившую команду в невыгодное положение.
Пропуск — ход команды пропускается без размещения отметки. Ход переходит к следующей команде.
Типы специальных клеток
Для справки — все состояния клеток, которые могут появиться на поле:
| Символ | Название | Значение |
|---|---|---|
_ | Пустая | Доступна для хода |
X | Крестик | Отметка Команды 0 |
O | Нолик | Отметка Команды 1 |
Δ | Треугольник | Отметка Команды 2 |
▢ | Квадрат | Отметка Команды 3 |
# | Препятствие | Заблокированная клетка (из настроек инициализации) |
% | Защищённая | Запечатанная клетка (из правила блокировки) |
* | Ничья | Клетка верхнего уровня при ничьей в блоке |
Сводка значений по умолчанию
Для быстрой справки — значения по умолчанию для всех настроек:
| Настройка | По умолчанию |
|---|---|
| Длина стороны | 3 |
| Длина линии | = длина стороны |
| Глубина / Вложенность | 2 |
| Измерения | 2 |
| Команды | 2 |
| Порядок ходов | Последовательный |
| Порядок внутри команды | По очереди |
| Симметричные препятствия | выкл |
| Случайные препятствия | 0 |
| Разведчики | 0 |
| Блокировка захваченных блоков | выкл |
| Правило Кю | выкл |
| Условие победы | Высший знак |
| Контроль времени | отключено |
| Последствие тайм-аута | Поражение |