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

Неизвестно

Шрифт:

игра( Поз, ФорсДер) :-

отобр( Поз),

( конец_игры( Поз), % Конец игры?

write( 'Конец игры'), nl, !;

сделать_ход( Поз, ФорсДер, Поз1, ФорсДер1), !,

игра( Поз1, ФорсДер1) ).

% Игрок ходит в соответствии с форсированным деревом

сделать_ход( Поз, Ход .. ФДер1, Поз1, ФДер1) :-

чей_ход( Поз, б), % Программа играет белыми

разрход( Поз, Ход, Поз1),

показать_ход( Ход).

% Прием хода противника

сделать_ход( Поз, ФДер, Поз1, ФДер1) :-

чей_ход( Поз, ч),

write( 'Ваш ход:'),

read( Ход),

( разрход( Поз, Ход, Поз1),

поддер( ФДер, Ход, ФДер1), !;

% Вниз по форс. дереву

write( 'Неразрешенный ход'), nl,

сделать_ход( Поз, ФДер, Поз1, ФДер1) ).

% Если текущее форсированное дерево пусто, построить новое

сделать_ход( Поз, nil, Поз1, ФДер1) :-

чей_ход( Поз, б),

восст_глуб( Поз, Поз0),

% Поз0 = Поз с глубиной 0

стратегия( Поз0, ФДер), !,

% Новое форсированное дерево

сделать_ход( Поз0, ФДер, Поз1, ФДер1).

% Выбрать форсированное поддерево, соответствующее Ход' у

поддер( ФДеревья, Ход, Фдер) :-

принадлежит( Ход . . Фдер, ФДеревья), !.

поддер( _, _, nil).

стратегия( Поз, ФорсДер) :-

% Найти форс. дерево для Поз

Прав : если Условие то СписСов,

% Обращение к таблице советов

удовл( Условие, Поз, _ ), !,

% Сопоставить Поз с предварительным условием

принадлежит( ИмяСовета, СписСов),

% По очереди попробовать элем. советы

nl, write( 'Пробую'), write( ИмяСовета),

выполн_совет( ИмяСовета, Поз, ФорсДер), !.

выполн_совет( ИмяСовета, Поз, Фдер) :-

совет( ИмяСовета, Совет),

% Найти элементарный совет

выполн( Совет, Поз, Поз, ФДер).

% "выполн" требует две позиции для сравнивающих предикатов

выполн( Совет, Поз, КорнПоз, ФДер) :-

поддержка( Совет, ЦП),

удовл( ЦП, Поз, КорнПоз),

% Сопоставить Поз с целью-поддержкой

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

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

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

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

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