Prolog
Шрифт:
уменьш_простр уменьшилось "жизненное пространство" короля противника,
ограничиваемое ладьей
раздел ладья занимает вертикальную или горизонтальную линию,
разделяющую королей
ближе_к_клетке наш король приблизился к "критической клетке" (см. рис. 15.9),
т.е. манхеттеновское расстояние до нее уменьшилось
l_конфиг "L-конфигурация" (рис. 15.9)
простр_больше_2 "жизненное пространство" короля противника занимает
больше двух клеток
Предикаты, ограничивающие ходы
глубина = N ход на глубине N дерева поиска
разреш любой разрешенный ход
ход_шах ход, объявляющий шах
ход_ладьей ход ладьей
нет_хода ни один ход не подходит
сначала_диаг ход королем, преимущественно по диагонали
% Окончание "король и ладья против короля" на языке AL0
% Правила
правило_края:
если король_противника_на_краю и короли_рядом
то [мат_2, потеснить, приблизиться,
сохранить_простр, отделить_2, отделить_3].
иначе_правило
если любая_поз
то [ потеснить, приблизиться, сохранить_простр,
отделить_2, отделить_3].
% Элементарные советы
совет( мат_2,
мат :
не потеря_ладьи и король_противника_на_краю:
(глубина = 0) и разреш
затем (глубина = 2) и ход_шах :
(глубина = 1) и разреш ).
совет( потеснить,
уменьш_простр и не ладья_под_боем и
раздел и не пат :
не потеря_ладьи :
(глубина = 0) и ход_ладьей :
нет_хода ).
совет( приблизиться,
ближе _к_клетке и не ладья_под_боем и
(раздел или l_конфиг) и
(простр_больше_2 или не наш_король_на_краю):
не потеря_ладьи :
(глубина = 0) и сначала_диаг :
нет_хода ).
совет( сохранить_простр,
ход_противиика и не ладья_под_боем и раздел
и не_дальше_от_ладьи и
(простр_больше_2 или не наш_король_на_краю):
не потеря_ладьи :
(глубина = 0) и сначала_диаг :
нет_хода ).
совет( отделить_2,
ход_противника и раздел и не ладья_под_боем:
не потеря_ладьи :
(глубина < 3) и разреш :
(глубина < 2) и разреш ).
совет( отделить_3,
ход_противника и раздел и не ладья_под_боем:
не потеря_ладьи :
(глубина < 5) и разреш :
(глубина < 4) и разреш ).
Рис. 15. 7. Таблица советов на языке AL0 для окончания "король
и ладья против короля". Таблица состоит из двух правил и шести