Чтение онлайн

на главную - закладки

Жанры

Неизвестно

Шрифт:

конец_ответов( Копия),

конкретизация( Копия, Цель), !, % Уже все сказано

fail.

% Попросить пользователя дать (еще) решения

ответпольз( Цель, _, Трасса, Ответ, N) :-

спросить_польз( Цель, Трасса, Ответ, N).

спросить_польз( Цель, Трасса, Ответ, N) :-

можно спросить( Цель, ВнешФормат),

формат( Цель, ВнешФормат, Вопрос, [ ], Перем),

% Получить формат вопроса

спросить( Цель, Вопрос, Перем, Трасса, Ответ, N).

спросить( Цель, Вопрос, Перем, Трасса, Ответ, N) :-

nl,

( Перем = [ ], !, % Сформулировать вопрос

write( 'Это правда: ');

write( 'Есть (еще) решения для :' )),

write( Вопрос), write( '?'),

принять( Ответ1), !, % Ответ1 - да/нет/почему

обработать( Ответ1, Цель, Вопрос, Перем,

Трасса, Ответ, N).

обработать( почему, Цель, Вопрос, Перем,

Трасса, Ответ, N):-

выд_трассу( Трасса),

спросить( Цель, Вопрос, Перем, Трасса, Ответ, N).

обработать( да, Цель,_, Перем, Трасса, правда, N) :-

след_индекс( Инд),

% Получить новый индекс для "сказано"

Инд1 is Инд + 1,

( запрос_перем( Перем),

assertz( сказано( Цель, правда, Инд) );

% Запись решения

копия( Цель, Копия), % Копирование цели

ответпольз( Цель, Копия, Трасса, Ответ, Инд1) ).

% Есть еще решения?

обработать( нет, Цель, _, _, _, ложь, N) :-

копия( Цель, Копия),

сказано( Копия, правда, _), !,

% 'нет' означает, больше нет решений

assertz( конец_ответов( Цель) ),

% Отметить конец ответов

fail;

след_индекс( Инд),

% Следующий свободный индекс для "сказано"

assertz( сказано( Цель, ложь, Инд) ).

% 'нет' означает нет ни одного решения

формат( Пер, Имя, Имя, Перем, [Пер/Имя | Перем]) :-

var( Пер), !.

формат( Атом, Имя, Атом, Перем, Перем) :-

atomic( Атом), !,

atomic( Имя).

формат( Цель, Форм, Вопрос, Перем0, Перем) :-

Цель =.. [Функтор | Apг1],

Форм =.. [Функтор | Форм1],

формвсе( Apг1, Форм1, Арг2, Перем0, Перем),

Вопрос =.. [Функтор | Арг2].

формвсе( [ ], [ ], [ ], Перем, Перем).

формвсе( [Х | СпХ], [Ф | СпФ], [В | СпВ], Перем0, Перем) :-

формвсе( СпХ, СпФ, СпВ, Перем0, Перем1),

формат( X, Ф, В, Перем1, Перем).

запрос_перем( [ ]).

запрос_перем( [Переменная/Имя | Переменные]) :-

nl, write( Имя), write( '='),

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

Петербург - нуар. Рассказы

Кивинов Андрей Владимирович
Проза:
современная проза
5.40
рейтинг книги
Петербург - нуар. Рассказы

Эллинские поэты

Коллектив авторов
Старинная литература:
античная литература
7.00
рейтинг книги
Эллинские поэты

Клетчатая зебра

Донцова Дарья
36. Любительница частного сыска Даша Васильева
Детективы:
иронические детективы
7.93
рейтинг книги
Клетчатая зебра

Вечный. Книга I

Рокотов Алексей
1. Вечный
Фантастика:
боевая фантастика
попаданцы
рпг
5.50
рейтинг книги
Вечный. Книга I

Бразилия

Сигалова Мария
Справочная литература:
путеводители
5.00
рейтинг книги
Бразилия

Дом с призраками. Английские готические рассказы

Диккенс Чарльз
Проза:
классическая проза
7.70
рейтинг книги
Дом с призраками. Английские готические рассказы

Газлайтер. Том 20

Володин Григорий Григорьевич
20. История Телепата
Фантастика:
боевая фантастика
аниме
попаданцы
5.25
рейтинг книги
Газлайтер. Том 20

#Бояръ-Аниме. Газлайтер. Том 7

Володин Григорий Григорьевич
7. История Телепата
Фантастика:
аниме
фэнтези
попаданцы
альтернативная история
5.00
рейтинг книги
#Бояръ-Аниме. Газлайтер. Том 7

На границе империй. Том 6

INDIGO
6. Фортуна дама переменчивая
Фантастика:
боевая фантастика
космическая фантастика
попаданцы
5.31
рейтинг книги
На границе империй. Том 6

Бояръ-Аниме. Газлайтер. Том 33

Володин Григорий Григорьевич
33. История Телепата
Фантастика:
боевая фантастика
попаданцы
аниме
6.25
рейтинг книги
Бояръ-Аниме. Газлайтер. Том 33

Кодекс Охотника. Книга XXVII

Винокуров Юрий
27. Кодекс Охотника
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Кодекс Охотника. Книга XXVII

Бой тигров в долине. Том 2

Маринина Александра
Детективы:
полицейские детективы
9.08
рейтинг книги
Бой тигров в долине. Том 2

Ведун

Сухов Александр Евгеньевич
1. Второй шанс
Фантастика:
фэнтези
боевая фантастика
альтернативная история
5.00
рейтинг книги
Ведун

Снежная королева

Виндж Джоан
1. Снежная королева
Фантастика:
научная фантастика
8.50
рейтинг книги
Снежная королева