соответствии с этим деревом. Так продолжается до окончания игры, которое обнаруживает предикат конец_игры (например, если поставлен мат).
Форсированное дерево - это дерево ходов, представленное в программе следующей структурой:
Ход . . [ Ответ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 иллюстрирует смысл некоторых из предикатов, использованных в таблице советов, а также показывает, как эта таблица работает.
В таблице используются следующие предикаты:
мат мат королю противника
пат пат королю противника
потеря_ладьи король противника может взять ладью
ладья_под_боем король противника может напасть на ладью прежде, чем наш
король сможет ее защитить