Задача о хорошей собаке Фреде и его хозяине Сэме - Prolog
Формулировка задачи:
помогите сделать задачу...
Факты и правила в этой задаче представлены предложениями:
а) Фред – это колли.
б) Сэм – хозяин Фреда.
в) Сегодня суббота.
г) В субботу холодно.
д) Фред дрессированный.
е) Спаниели – хорошие собаки, а колли такие же дрессированные.
ж) Если собака хорошая и имеет хозяина, то она находится рядом с хозяином.
з) Если в субботу тепло, то Сэм находится в парке.
и) Если в субботу не тепло, то Сэм находится в музее.
Где Фред?
вот мой код, он неправильно работает, потому что не знаю как дальше сделать... помогите
Решение задачи: «Задача о хорошей собаке Фреде и его хозяине Сэме»
textual
Листинг программы
% ----- a
cобака('Фред', 'колли').
% ----- б
хозяин('Сэм', 'Фред').
% ----- в
сегодня('суббота').
% ----- г
погода('суббота','холодно').
% ----- д
дрессирована('Фред').
% ----- е
хорошая(Собака):-
cобака(Собака, 'спаниель');
cобака(Собака, 'колли'),
дрессирована(Собака).
% ----- ж
где_находится(Собака, Когда, Где) :-
cобака(Собака, _),
хорошая(Собака),
хозяин(Хозяин, Собака),
где_находится(Хозяин, Когда, Где).
% ----- з
где_находится('Сэм', 'суббота', 'парк') :-
погода('суббота','тепло'), !.
% ----- и
где_находится('Сэм', 'суббота', 'музей').
% ---- вопрос
где_находится(Собака, Где) :-
сегодня(Сегодня),
где_находится(Собака, Сегодня, Где).
Объяснение кода листинга программы
- Собака('Фред', 'колли').
- Хозяин('Сэм', 'Фред').
- Сегодня('суббота').
- Погода('суббота','холодно').
- Дрессирована('Фред').
- Хорошая(Собака):-
- Собака(Собака, 'спаниель');
- Собака(Собака, 'колли'),
- дрессирована(Собака).
- Где_находится(Собака, Когда, Где) :-
- Собака(Собака, _),
- хорошая(Собака),
- хозяин(Хозяин, Собака),
- где_находится(Хозяин, Когда, Где).
- Где_находится('Сэм', 'суббота', 'парк') :-
- погода('суббота','тепло'), !.
- Где_находится('Сэм', 'суббота', 'музей').
- Где_находится(Собака, Где) :-
- сегодня(Сегодня),
- где_находится(Собака, Сегодня, Где).
- Сегодня('суббота').
- Погода('суббота','холодно').
- Дрессирована('Фред').
- Хорошая(Собака):-
- Собака(Собака, 'спаниель');
- Собака(Собака, 'колли'),
- дрессирована(Собака).
- Где_находится(Собака, Когда, Где) :-
- Собака(Собака, _),
- хорошая(Собака),
- хозяин(Хозяин, Собака),
- где_находится(Хозяин, Когда, Где).
- Где_находится('Сэм', 'суббота', 'парк') :-
- погода('суббота','тепло'), !.
- Где_находится('Сэм', 'суббота', 'музей').
- Где_находится(Собака, Где) :-
- сегодня(Сегодня),
- где_находится(Собака, Сегодня, Где).
- Сегодня('суббота').
- Погода('суббота','холодно').