Comments 14
Я так понимаю, что в шахматах правила форсированых ходов при шахе напрямую следуют из условий проигрыша. То есть, если бы игрок был не обязан уводить короля из под удара, то это всё равно не имело бы смысла делать. Так как игрок, оставивший короля под ударом тут же бы проиграл.
А пат в этом случае был бы проигрышем, так как вынуждал игрока самого встать под удар.
Этот момент можно рассматривать с двух концов. Мне сейчас удобнее думать, что понятие мата следует из инварианта не попадания под шах. Проигрыш в виду отсутствия ходов это более универсальная концепция (хотя никто не мешает определить, например, пат как ничью или даже выигрыш). Что касается инвариантов… они могут быть очень разные. Вот здесь, например, инвариантом является то, что группа из одноцветных камней не должна разделяться.

Видео

Несколько уточнений.

Ответить на шах можно тремя способами:

  • уйти
  • взять шахующую фигуру
  • закрыть линию удара (если шах даёт линейная фигура).

В случае же двойного шаха выход только один: бегство, т.к. одним ходом ни двух фигур не взять, ни двух линий не перекрыть.

Пат: у стороны нет ходов, и необязательно в силу невозможности идти под шах. Например, в этой позиции чёрные в пату, но у короля нет ходов под шах:
image
В тех играх, где пат является проигрышем, можно немного упростить концепцию А именно, в этом случае рассмотреть ту же игру со слегка модифицированными правилами, разрешив оставаться под шахом после своего хода. Такая модификация в точности сохраняет оценку позиции: те позиции, которые являются выигрышными (проигрышными, ничейными) в исходной игре, остаются таковыми и в модифицированной. Обещанное упрощение концепции заключается в том, что понятия пата и мата теряют свою значимость и становятся частными случаями цугцванга, а для выигрыша надо взять короля соперника или запатовать его. За счет этого иногда можно упростить описание игры (для человеков) и реализацию программного описания (для машин).

Правда, такая модификация немного влияет на спортивную составляющую игры (один пошел под шах, а другой не заметил или не захотел, и партия продолжается), но, думаю, этим фактором можно пренебречь.
Да, насколько я помню, именно так играют в Сёги. Понятие мата есть, но если игрок остался под шахом, а атакующий этого не заметил, то такой шах можно «заиграть». Правда, если ошибка замечена, допустившему её игроку немедленно засчитывается поражение (хотя тут могут быть различия турнирных и любительских играх). Другое забавное правило существует в Чанги:

Если игрок не может сделать по правилам ни одного хода, он пропускает свой ход, но если какой-либо ход возможен, отказаться от своего хода нельзя. В старину существовало правило: если у одного игрока остался только «голый» король, который попал в пат, ему давалась льгота – возможность пропустить ход. Считалось, что одинокий король делал особый ход – вращался на месте (фишку действительно крутили, не сдвигая с места). В принципе, даже в шахматах нередки случаи, когда следующим ходом противник в ходе пата вынужден был бы разблокировать короля. Таким образом, в чанги пат надо было ставить на ДВА ХОДА вперёд, дабы неприятельский король как-нибудь ненароком не выкрутился.
Уф, какие запутанные правила у чанги. Насколько я понял, запрещается «прокручивать короля» два раза подряд.

Насчет правил пата у меня есть одна идея, применимая к шахматоподобным играм, навеянная правилами омега-шахмат. Напомню, что там пат приносит не пол-очка, а 1/4 очка запатованной стороне. Насколько я понимаю, создателям омега-шахмат показалось несправедливым, что в общем случае ладья не может заматовать одинокого короля, может лишь загнать его в угловую клетку с патом.

Так вот, моя идея в том, что игрок имеет право пропустить ход (независимо от того, пат ему или нет), тогда соперник имеет право немедленно остановить партию, взяв себе 3/4 очка, а может продолжить как обычно. Пока затрудняюсь сказать, обогатит ли эта модификация обычные правили или наоборот. Например, маневр «бешеная фигура» лишается всякого смысла; часть окончаний меняет свою оценку с ничейной до выигрышной. Можно рассматривать эту модификацию как способ повышения результативности партии (если кого-то всё еще беспокоит проблема ничейной смерти).
В Чанги да, пропускать ход можно лишь однократно. По поводу остановки партии по пропуску хода идея интересная. Немного похоже на нормальное завершение партии в Го (в том смысле, что никто не сдался). Там любой игрок может пропустить ход, но если другой игрок тоже пропустил ход, начинается подсчёт очков и завершение партии (в разных системах есть нюансы).
Ну да, Бегемот прав. Нельзя вот так вот сходу взять и сказать «Вам мат!». Надо разобраться, в какой фазе Луна, сколько королей на доске, сколько из них вражеских… А вообще, мой подход к этому вопросу напоминает решение математиком задачи об устойчивости табуретки. Сначала доказывается обобщённый случай N ножек, а потом просто берётся частный случай, для N=3.
Спасибо, очень интересно! Если вы делаете реализацию на джава, то вам может показаться интересным, идея написания дсл на котлине — очень просто, удобно, гибко и легкораширяемо. Многие случаи требуют адхок решений, которые плохо ложатся в исключительно декларативную модель. Написание дсл на языке вроде котлина или груви(менее типизировано, не советую), позволяет решить эту проблему и получить как бонус ide с автодополением. Рекомендую.
Only those users with full accounts are able to leave comments. Log in, please.