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

Неизвестно

Шрифт:

манх_расст( БК, КК, Мрасст).

раздел( _..Бх : Бу..Лх : Лу.. Чх : Чу.._ ) :-

упоряд( Бх, Лх, Чх), !;

упоряд( Бу, Лу, Чу).

l_конфиг( _..Б..Л..Ч.._ ) :- % L - конфигурация

манх_расст( Б, Ч, 2),

манх_расст( Л, Ч, 3).

не дальше_от_ладьи( _..Б..Л.._, _..Б1..Л1.._ ) :-

расст( Б, Л, Р),

расст( Б1, Л1, Р1),

Р =< Р1.

простр_больше_2( Поз) :-

простр( Поз, Пр),

Пр > 2.

наш_король_на_краю( _..Х : Y.._ ) :-

% Белый король на краю

( X = 1, !; X = 8, !; Y = 1, !; Y = 8).

король_противника_на_краю( _..Б..Л..Х : Y.._ ) :-

% Черный король на краю

( X = 1, !; X = 8, !; Y = 1, !; Y = 8).

короли_рядом( Поз) :- % Расстояние между королями < 4

бк( Поз, БК), чк( Поз, ЧК),

расст( БК, ЧК, Р),

Р < 4.

потеря_ладьи( _..Б..Л..Л.._ )- % Ладья взята

потеря_ладьи( ч..Б..Л..Ч.._ ) :-

сосед( Ч, Л), % Черный король напал на ладью

not сосед( Б, Л). % Белый король не защищает ладью

расст( X : Y, X1 : Y1, Р) :- % Расстояние до короля

абс_разн( X, X1, Рх),

абс_разн( Y, Y1, Ру),

макс( Рх, Ру, Р).

абс_разн( А, В, С) :-

А > В, !, С is A - В;

С is В - А.

макс( А, В, М) :-

А >= В, !, М = А;

М = В.

манх_расст( X : Y, X1 : Y1, Р) :- % Манхеттеновское расстояние

абс_разн( X, X1, Рх),

абс_разн( Y, Y1, Ру),

P is Рх + Ру.

простр( Поз, Пр) :-

% Область, в которой "заперт" черный король

бл( Поз, Лх : Лу),

чк( Поз, Чх : Чу),

( Чх < Лх, СторонаХ is Лх - 1;

Чх > Лх, СторонаХ is 8 - Лх ),

( Чу < Лу, СторонаY is Лу - 1;

Чу > Лу, СторонаY is 8 - Лу ),

Пр is СторонаХ * СторонаY, !;

Пр = 64. % Ладья и черный король на одной линии

кк( _..Б..Лх : Лу.. Чх : Чу.._, Кх : Ку) :-

  • Читать дальше
  • 1
  • ...
  • 189
  • 190
  • 191
  • 192
  • 193
  • 194
  • 195
  • 196
  • 197
  • 198
  • 199
  • ...

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

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

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

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