Тяни, толкай, меняй
Инвентарь
Для теста механик используется стандартный шахматный набор. Позже будет сделан свой, с другими типами фигур и ходами.
Ходы
Игроки ходят по очереди по одной фигуре.
У каждого типа фигур - свои комбинации типов и дальности воздействия. Действия применяются к фигурам всех цветов.
Перемещение
Своя фигура движется по прямой до N клеток или до первого препятствия.
![](/static/gamedev/push-pull-swap/push-pull-swap-m1.png)
Отталкивание
Своя фигура остаётся на месте, соседняя фигура перемещается в указанную сторону по прямой на N клеток или до первого препятствия.
![](/static/gamedev/push-pull-swap/push-pull-swap-m2.png)
Притягивание
Своя фигура остаётся на месте, фигура-цель в прямой видимости (без препятствий), не дальше N клеток, перемещается по прямой до своей.
![](/static/gamedev/push-pull-swap/push-pull-swap-m3.png)
Либо фигура-цель остаётся на месте, своя фигура притягивается до цели.
![](/static/gamedev/push-pull-swap/push-pull-swap-m3-2.png)
Обмен
Своя фигура и фигура-цель ровно на расстоянии N меняются местами. Препятствия не учитываются.
![](/static/gamedev/push-pull-swap/push-pull-swap-m4.png)
Взятие
Используется разновидность взятия зажатием. Замещение “как в шахматах” не используется: нельзя поставить свою фигуру на место другой.
В свой ход нужно добиться окружения фигуры соперника со всех обозначенных сторон. Хоть одна фигура из окружения должна быть вашей. Края поля тоже участвуют в окружении.
![](/static/gamedev/push-pull-swap/push-pull-swap-m5.png)
При самостоятельном входе в окружение своя фигура сохраняется, но можно провести взятие соперника.
![](/static/gamedev/push-pull-swap/push-pull-swap-m7.png)
Полное окружение снимает любую фигуру. Замыкание своей фигуры в окружение, где участвует противник, также снимает фигуру.
![](/static/gamedev/push-pull-swap/push-pull-swap-m5-2.png)
Можно взять несколько фигур одним ходом.
![](/static/gamedev/push-pull-swap/push-pull-swap-m6.png)
Игра завершается зажатием короля или при очевидной невозможности этого (пат).
Цикл
Возможна ситуация, когда фигуру притягивают, она отходит, её снова притягивают, и тогда партия зациклится, пока кто-то не сделает другой ход. Чтобы избежать такого состояния, запрещено передвигать одну и ту же фигуру тем же способом, как и в прошлом ходу.
- Например, слон подтягивает пешку, пешка отходит, слон снова её подтягивает. Тогда пешке нельзя перемещаться по этой же линии в следующий ход.
- Или ладья отталкивает слона, слон притягивается к ладье, ладья опять отталкивает. Тогда слону нельзя притягиваться к этой ладье.
- Ферзю доступно два действия, дающих иногда одинаковый результат: подойти к фигуре или притянуться к ней. Оба эти действия на той же линии недоступны при образовании цикла: попавший в цикл ферзь должен переместиться по другой линии.
- Если конь меняется с другим конём, тот может обменяться обратно, а первый не может обменяться с ним ещё раз, т.к. передвинется тем же способом, что ход назад.
Фигуры
Пешка
М^2, M<v>1, L^2 C<>
- Двигается: две клетки вперёд; одна клетка влево, вправо или назад
- Тянет: с двух клеток спереди
- Окружается: слева и справа
![](/static/gamedev/push-pull-swap/push-pull-swap-s1.png)
Ладья
M+6, P+6, C<v>
- Двигается: шесть клеток по прямым
- Толкает: на шесть клеток по прямым
- Окружается: слева, справа и сзади
![](/static/gamedev/push-pull-swap/push-pull-swap-s2.png)
Конь
M+3, Mv5, S+2, C^v
- Двигается: три клетки вперёд, влево и вправо; шесть клеток назад
- Меняется: на две клетки по прямым
- Окружается: сверху и снизу
![](/static/gamedev/push-pull-swap/push-pull-swap-s3.png)
Слон
Mx5, L+6, C<^>
- Двигается: шесть клеток по диагоналям
- Тянет: с шести клеток по прямым
- Окружается: слева, справа и спереди
![](/static/gamedev/push-pull-swap/push-pull-swap-s4.png)
Ферзь
M*6, P+6, L+6, C+
- Двигается: шесть клеток во все стороны
- Толкает: на шесть клеток по прямым
- Тянет: с шести клеток по прямым
- Окружается: с четырёх сторон
![](/static/gamedev/push-pull-swap/push-pull-swap-s5.png)
Король
M+1, L+2, S+1A, C+
- Двигается: одна клетка по прямым
- Тянет: с двух клеток по прямым
- Меняется: на одну клетку по прямым, только со своими
- Окружается: с четырёх сторон
![](/static/gamedev/push-pull-swap/push-pull-swap-s6.png)
Влияние
Механики предполагались уникальные в то же время близкие к базовым примитивам. Взятие зажатием, участие краёв поля, требование полного окружения короля по сравнению с двусторонним для обычных фигур, встречается в Hnefatafl. Окружение учитывает направление фигуры относительно поля, поэтому сущностно это не “взятие зажатием”, а патерновое, как в Го, где для снятия надо занять у фишки последнюю свободную клетку своей.
Притягивание, в т.ч. втягивание в окружение, ни в каких известных играх не встречается. Возможность притягивания и своей фигуры к цели тоже, сильно расширяет возможности только притягивающих фигур.
Развитие
Для игры предполагается изготовить собственный набор фишек и поле со “стенками”, участвующими во взятии. Типов фигур будет много, некоторые могут меняться местами только со своими, или отталкивать только вражеские… это всё будет нанесено прям на фигурах в плотной системе обозначений.
Будет больше задействована механика обменов, возможно добавится механика сковывания: когда фигура не может отойти от другой, но может быть вытащена обменом, вытянута или вытолкнута.