Программирование на языке Пролог для искусственного интеллекта

       

Программа на языке советов для эндшпиля "король и ладья против короля"



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

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

line();

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

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

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

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

    (4)        Если ни один из элементарных советов 1, 2, или 3 не выполним, то найти
                способ сохранить все имеющиеся к настоящему моменту "достижения" в
                смысле (2) и (3) (т. е. сделать выжидающий ход).

    (5)        Если ни одна из целей 1, 2, 3 или 4 не достижима, то найти способ получить
                позицию, в которой ладья занимает вертикальную или горизонтальную
                линию, отделяющую одного короля от другого.

line();

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



Содержание раздела