– Ящик… – повторил отец Кабани упавшим голосом. – Это мы говорим, будто мы выдумываем. На самом деле все давным-давно выдумано. Кто-то давным-давно все выдумал, сложил все в ящик, провертел в крышке дыру и ушел… Ушел спать...
А. и Б. Стругацкие "Трудно быть богом"
На носу Новый год и время дарить подарки. За год было сделано немало. Мой проект растёт на глазах и, что самое главное, становится умнее. Как именно он это делает — отдельная история, которую я обязательно расскажу, как нибудь, в другой раз. Сейчас — время заглянуть в мешок и посмотреть, что приготовил для нас Dagaz.
Начать свой обзор, я хочу с великолепной игры Тревора Трурана "Бац!", разработанной по мотивам одноимённого произведения всеми любимого Терри Пратчетта. С этой игры я начал (по серьёзному) осваивать Zillions of Games. Теперь в неё можно поиграть в вебе. Кстати, доску для игры рисовал мой сын (а я её только чуть-чуть подредактировал).
Картинка кликабельна (как и все последующие в статье). Для меня «Бац!» хорош своей асимметричностью. Игра за троллей довольно тривиальна. Подходя вплотную, они убивают всех, кто находится поблизости. Дварфам, напротив, приходится потрудиться. Они более мобильны и их больше, но чтобы атаковать тролля (запрыгнуть на него), им приходится строить линию. Дварф, находящийся с краю, может «отпрыгнуть» на число шагов не превышающее размера собранной группы (тролли умеют «прыгать» аналогичным образом).
В современном мире, настольные игры, как правило, симметричны, но в древности это было не так. "Лиса и гуси", "Асальто", "Французская военная игра" — все эти игры ассиметричны (и были невероятно популярны, в своё время). Также ассиметричны игры семейства "Тафл", сохранившиеся до наших дней благодаря трудам Карла Линнея, а также неуёмной любви финского народа к разнообразным развлечениям.
Белым необходимо сопроводить своего короля от «трона», расположенного в центре доски, к любому из угловых полей. Их противники стараются помешать сделать это. В отличии от аналогичных игр на больших досках, все фигуры, а не только король, могут перемещаться всего на один шаг, в любом из ортогональных направлений. Во всех играх семейства действует древняя форма кооперативного захвата. Для того чтобы убрать фигуру с доски, её необходимо с двух сторон окружить своими фигурами (одним ходом можно захватить до трёх фигур).
Пустой «трон» и угловые поля (на которые не могут заходить никакие фигуры кроме короля), также могут использоваться для выполнения захвата. Любая фигура может безопасно вставать между двумя противниками (такая ситуация не считается захватом). При попытке захвата короля, белые имеют право на выполнение ещё одного хода (если этим ходом они не убирают с доски одного из противников, взявших короля в окружение, белым засчитывается поражение). Кроме того, если король находится на «троне» или рядом с ним, его необходимо окружать со всех четырёх сторон.
Ещё одна игра, на которую, скорее всего, оказал влияние «Тафл». Средневековые "Фермерские шахматы". Сходство с Шахматами, впрочем, довольно отдалённое. Я уже писал об этой игре раньше. Для победы, необходимо провести двух своих королей в центр доски — «святое место». Вообще, надо сказать, что Шахматы далеко не сразу стали такими, какими мы привыкли их видеть.
В какой-то момент, на этом основании, родилась сложная тактическая игра "Чатуранга", разделившая фигуры на четыре типа войск (название «Чатуранга» переводится как «четырёхчастная»). Где-то в сети, я видел (и с тех пор никак не могу найти) объяснение хода фигур, исходя из результата броска костей (напомню, что в игре использовались кости с четырьмя гранями).
- "1" (в некоторых наборах "5") — Пешки и короли, перемещающиеся всего на один шаг. Пешки двигались «только вперёд» и (единственные из фигур) брали не так как ходили (на одно поле вперёд, по диагонали).
- "2" — Слон (в некоторых источниках «лодка»). С этой фигурой больше всего путаницы. По всей видимости, первоначально он ходил на две клетки в ортогональном направлении. Потом направление сменилось на диагональное (встречается ещё один вариант перемещения, сохранившийся в тайском "Макруке" — на одну клетку в четырёх диагональных направлениях или на одну клетку вперёд, как ноги и хобот слона). Перемещаясь на две клетки, слон, как и привычный нам шахматный конь, мог «перепрыгивать» фигуры (в индийских боевых гонках, фигуры перепрыгивались, не блокируя движение).
- "3" — Конь перемещался на три шага (два вперёд и один вбок). Столь причудливый способ перемещения связывается с тем, что в Аштападе, выполняя ход на три шага, фигура довольно часто двигалась именно таким образом (на поворотах). Разумеется, конь, как и слон, мог перепрыгивать другие фигуры.
- "4" — Колесница (в некоторых источниках слон) — самая дальнобойная фигура. Перемещалась на любое количество клеток по прямой (в ортогональном направлении), но не могла «перепрыгивать» другие фигуры.
Теория о том, что Шахматы произошли от игры четырёх игроков является, по всей видимости, ошибочной. Такой вариант игры также встречается, но, скорее всего, появился гораздо позже. В игре двух игроков, короля дополнял «министр», также перемещавшийся всего на одно поле, но только в диагональных направлениях. Очень слабая и тихоходная фигура.
Персидский "Шатрандж" внешне почти ничем не отличался от «Чатуранги». Изменились правила превращение пешек, но, самое главное, впервые появились концепции шаха и мата. В «Чатуранге» требовалось захватить или «оголить» раджу (оставить его без фигур). В «Шатрандже» шах стал неприкосновенной фигурой. Запрещалось оставлять его под угрозой, а для победы требовалось поставить его в безвыходной положение (мат или пат). Оголение короля считалось ничьёй. Поскольку, в связи с тотальной тихоходностью фигур, дебюты в Шатрандже были весьма неторопливы, большое распространение получили табии — начала игры с оговоренных игроками позиций:
В этой игре, возникшей задолго до Фишера, только порядок расстановки пешек жёстко регламентирован. Остальные фигуры игрок волен расставлять (на своей стороне) так, как ему заблагорассудится (ну разве что первая линия всегда зарезервирована для ладей). Это правило придаёт игре невероятное тактическое разнообразие и делает практически бесполезным «зазубривание» разнообразных дебютов.
В тесном родстве с Ситтуйином состоит тайский "Макрук". В силу того, что превращение пешек, в этой игре, происходит уже на шестой линии (превращаются они всё в того же слабого «ферзя»), а количество таких превращений не ограничено (в отличии, например, от Ситтуйина) игра в эндшпиле становится весьма своеобразной и на редкость интересной. Известный советский шахматист и экс-чемпион мира Владимир Крамник серьёзно увлекался этой игрой. Вот что он говорил о ней:
Макрук носит более стратегический характер, чем шахматы,… Вы должны планировать комбинации в более общем контексте. Тайский макрук можно уподобить эндшпилю в международных шахматах.
Скорее всего, именно Макрук послужил основой для китайской и японской ветвей семейства шахматных игр. Утверждать это со стопроцентной точностью, разумеется, невозможно — слишком сильно эти игры видоизменились, но, во всяком случае, расстановка пешек и в "Сянцы" и в "Сёги" более всего напоминает аналогичную именно в «Тайских шахматах».
Следующим этапом на пути к Шахматам стало изобретение современного шахматного слона в "Курьерских шахматах" — игре XIII—XVIII веков. Появление дальнобойных фигур, перемещающихся по диагонали, привело к необходимости использования знаменитой «шахматной» разметки доски, в свою очередь сыгравшей огромную роли в развитии и распространении Шашек. Играть в «Курьерские шахматы», как правило, также начинали со своего рода табии:
После изобретения дальнобойного шахматного ферзя, началась новейшая история Шахмат. Последние изменения в правилах были связаны с добавлением правил "Рокировки", прыжка пешек на две клетки вперёд, с начальной позиции и связанного с этим правила "взятия на проходе". Относительно последнего, впрочем, нет полной ясности. В малазийском "Майн Чаторе" существует похожее правило, но брать можно только пешку, движение которой вперёд заблокировано другой пешкой игрока (это до странности похоже на кооперативное взятие в играх «зажимного» типа, таких как «Тафл»).
В наше время, вариации этой игры также поражают своим разнообразием. Не все они одинаково интересны, но иногда среди них попадаются настоящие жемчужины. Мне, например, очень понравились варианты игры с неравными армиями.
Здесь соблюдаются все шахматные правила (во всяком случае те, которые имеют смысл, в рамках начальной расстановки фигур). Эти игры неплохо сбалансированы и, кроме того, могут развлечь тех, кому наскучила привычная шахматная игра. Если же простого изменения начальной расстановки недостаточно, есть ещё более смелые игры, сметающие на своём пути все шаблоны:
В Platform Chess все привычные нам шахматные правила также соблюдаются (переучиваться не надо), но сама концепция игрового поля — трансформера буквально взрывает мозг. Для тех же, кто настольным играм предпочитает старые добрые головоломки я подготовил 60 уровней "Сокобана" (клавиатурные стрелки работают).
Всех с наступающим Новым Годом!
Комментарии (18)
DS28
27.12.2017 12:02В Platform Chess все привычные нам шахматные правила также соблюдаются (переучиваться не надо), но сама концепция игрового поля — трансформера буквально взрывает мозг.
на видео явно слабая партия… Но вообще круто. Отход от шаха не фигурой, а группой клеток — это прям шикарно. И чужую фигуру можно изолировать. Мне понравилось))GlukKazan Автор
27.12.2017 12:09Да, играет очень слабо. Я сейчас работаю над этим и на тему AI будет, скорее всего, следующая статья. Уже на Хабре и с техническими подробностями. Кстати, AI в любой игре можно отключить, дописав в url "-board", например вот так. А в некоторых головоломках, наоборот, включить.
DS28
27.12.2017 12:23+1Ещё пешка на первой горизонтали смущает немного, хотя принципиально ничего не меняется…
AI в любой игре можно отключить, дописав в url "-board"
Это хорошо. Ещё бы онлайн поиграть)))
А ведь не сложно сделать и физическую доску!
В общем отличная игра, как мне кажется. Спасибо!
Сама идея близка с Пентаго.GlukKazan Автор
27.12.2017 12:36Да, я думаю над использованием PeerJS для игры по сети, но будет это, скорее всего, только во второй версии Dagaz (то есть не скоро). Что касается Пентаго (знаю такую игру), то да, концепция очень похожа. Игр с досками-трансформерами не так много, но они есть. Например "Turn-the-table Checkers".
DS28
27.12.2017 16:04А зачем бомбы? Никак понять не могу…
GlukKazan Автор
27.12.2017 16:07Это уже моё нововведение (можно играть без них). Уничтожают всю платформу вместе с фигурами. Не взрываются если при этом не будет уничтожена хотя бы одна вражеская фигура (вражеская платформа тоже считается за фигуру).
DS28
28.12.2017 05:29Понял. Тогда в статье лучше бы заменить
glukkazan.github.io/checkmate/platform-bomb.htm
на
glukkazan.github.io/checkmate/platform-chess.htm
А первую ссылку чуть ниже описать отдельно.
DS28
28.12.2017 05:43Нашёл несколько интересных моментов
- Пешка ступая на последнюю горизонталь сразу в ферзя превращается (хотелось бы выбор иметь)
- Если пешка попадает на последнюю горизонталь с помощью платформы — ничего не происходит, т.е. пешка просто стоит и не может ходить, пока платформа не вернётся (тут не уверен, можно ли сделать лучше или нет. но возможно ситуация, когда, например у белых одна пешк, но она не может ходить — вроде не ничья, но ничья :) )
- Шах фиксируется даже если между фигурами нет платформы и это, как мне кажется серьёзное упущение. Если короля не могут срубить следующим ходом, то и шаха быть не должно.
DS28
28.12.2017 06:394. Пат не фиксируется. Засчиталось поражение компьютеру, когда я загнал его в пат (хотя пат и не тривиальная задача, с учётом возможности ходить секторами доски)
GlukKazan Автор
28.12.2017 09:23Да, есть такое с патом. Задача не то чтобы не тривиальная. Просто в подавляющем большинстве игр отсутствие возможного хода считается поражением (разумеется, в Dagaz это можно переопределить). В Шахматах, в настоящий момент, проверка завершения игры (checkGoals) просто не выполняется (в Platform Chess она есть, но только потому, что можно случайно подорвать своего короля и это надо контролировать). С учётом инварианта контролирующего нахождение короля под шахом это почти работает.
Разница между патом и матом в том, что при отсутствии разрешённых ходов, в последнем случае, король должен находится под угрозой. Проверка этого довольно затратна. Необходимо выполнять дополнительную генерацию списка возможных ходов, чтобы определить угрозы. Вопрос производительности стоит очень остро (это одна из причин по которой боты играют так слабо). Но тут есть два момента. Во первых, в Шахматах можно выполнить проверку угроз королю без полноценной генерации ходов (в Platform Chess этот номер уже не пройдёт из за сложных ходов платформ и бомб).
Вторая возможность связана с теми усовершенствованиями AI, над которыми я работаю сейчас. В частности, я строю то что сам называю «покрытием». Это не очень затратная операция, поскольку она выполняется один раз за ход. Вот здесь можно посмотреть как это работает. Белые, на первый взгляд, играют вполне разумно. Всё это за счёт анализа «покрытия», поскольку просмотр ведётся всего на один ход вперёд. Я могу использовать «покрытие» не только для нужд ботов, но и для проверки целей игры. Думаю, это поможет отличить пат от мата без лишних накладных расходов.
GlukKazan Автор
28.12.2017 09:47- Тут у меня проблема, в основном, чисто интерфейсная. Шахматы (и производные от них) — единственная известная в которой результат превращения не детерминирован (то есть, есть выбор во что превратиться). Во всех остальных играх я просто использую confirm для того чтобы задать вопрос о том, нужно ли вообще превращаться (там где превращение принудительное и этого не требуется). С этим тоже есть определённые сложности, поскольку на момент выполнения хода все возможные ходы уже давно сгенерированы (что делает MoveList не самым простым в реализации модулем). Например, у меня есть не закрытый баг, связанный с тем, что запрос превращения происходит при выполнении хода бота (ума не приложу, почему это происходит). В общем, для Шахмат я пока просто не придумал, как поудобнее спросить о том, в какую именно фигуру превращаться.
- Об этом просто не подумал. В принципе, превращение пешки при перемещении платформы реализовать не сложно (не помню, было ли такое в оригинальной игре, надо смотреть).
- Это тоже моя промашка. Та самая оптимизированная проверка угроз без честной генерации ходов. Совсем забыл, что необходимо проверять расположение платформ.
GlukKazan Автор
28.12.2017 14:54+1Пункты 2 и 3 исправлены. Пешки превращаются в ферзей, если переехали на последнюю линию на платформе. Шахи сквозь не покрытые платформами поля не учитываются.
LoadRunner
GlukKazan Автор
Классические. Из этой статьи.