Вход/Регистрация
Prolog
вернуться

Неизвестно

Шрифт:

принадлежит( X, Спис).

Рис. 15. 6. Миниатюрный интерпретатор языка AL0.

игра( Поз)

где Поз– выбранная начальная позиция. Если в позиции Поз ходит противник, то программа принимает его ход, в противном случае - "консультируется" с таблицей советов, приложенной к программе, порождает форсированное дерево и делает свой ход в соответствии с этим деревом. Так продолжается до окончания игры, которое обнаруживает предикат конец_игры (например, если поставлен мат).

Форсированное дерево - это дерево ходов, представленное в программе следующей структурой:

Ход . . [ Ответ1 . . Фдер1, Ответ2 . . Фдер2, . . . ]

Здесь ".." - инфиксный оператор; Ход– первый ход "игрока"; Ответ1, Ответ2, ...
– возможные ответы противника; Фдер1, Фдер2, ...
– форсированные поддеревья для каждого из этих ответов

.

15. 6. 2. Программа на языке советов для эндшпиля

"король и ладья против короля"

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

Повторять циклически, пока не будет поставлен мат (постоянно проверяя, что не возникла патовая позиция и что нет нападения на незащищенную ладью):

(1) Найти способ поставить королю противника мат в два хода.

(2) Если не удалось, то найти способ уменьшить ту область доски, в которой

король противника "заперт" под воздействием ладьи.

(3) Если и это не удалось, то найти способ приблизить своего короля к королю

противника.

(4) Если ни один из элементарных советов 1, 2, или 3 не выполним, то найти

способ сохранить все имеющиеся к настоящему моменту "достижения" в

смысле (2) и (3) (т. е. сделать выжидающий ход).

(5) Если ни одна из целей 1, 2, 3 или 4 не достижима, то найти способ получить

позицию, в которой ладья занимает вертикальную или горизонтальную

линию, отделяющую одного короля от другого.

Описанные выше принципы реализованы во всех деталях в таблице советов на языке AL0, показанной на рис. 15.7. Эта таблица может работать под управлением интерпретатора рис. 15.6. Рис. 15.8 иллюстрирует смысл некоторых из предикатов, использованных в таблице советов, а также показывает, как эта таблица работает.

В таблице используются следующие предикаты:

Предикаты целей

мат мат королю противника

пат пат королю противника

потеря_ладьи король противника может взять ладью

ладья_под_боем король противника может напасть на ладью прежде, чем наш

король сможет ее защитить

уменьш_простр уменьшилось "жизненное пространство" короля противника,

ограничиваемое ладьей

раздел ладья занимает вертикальную или горизонтальную линию,

разделяющую королей

ближе_к_клетке наш король приблизился к "критической клетке" (см. рис. 15.9),

т.е. манхеттеновское расстояние до нее уменьшилось

l_конфиг "L-конфигурация" (рис. 15.9)

простр_больше_2 "жизненное пространство" короля противника занимает

больше двух клеток

Предикаты, ограничивающие ходы

глубина = N ход на глубине N дерева поиска

  • Читать дальше
  • 1
  • ...
  • 184
  • 185
  • 186
  • 187
  • 188
  • 189
  • 190
  • 191
  • 192
  • 193
  • 194
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: