
- •Семинар №4. Использование структур: примеры
- •4. 1. Получение структурированной информации из базы данных
- •4. 2. Абстракция данных
- •4. 3. Моделирование недетерминированного автомата
- •4. 4. Планирование поездки
- •4. 5. Задача о восьми ферзях
- •4. 5. 2. Программа 2
- •4. 5. 3. Программа 3
- •4. 5. 4. Заключительные замечания
- •Упражнения
- •Допускается( s, [ ], _ ) :- конечное( s).
Допускается( s, [ ], _ ) :- конечное( s).
допускается( S, [X | Остальные], Макс_переходов) :- Макс_переходов > 0, переход( S, X, S1), НовыйМакс is Макс_переходов - 1, допускается( S1, Остальные, НовыйМакс).
допускается( S, Цепочка, Макс_переходов) :- Макс_переходов > 0, спонтанный( S, S1), НовыйМакс is Макс_переходов - 1, допускается( S1, Цепочка, НовыйМакс).
4. 7
(а) ходконя( X/Y, X1/Y1) :- % Ход коня с поля X/Y на поле X1/Y1 ( dxy( DX, DY); % Расстояния по направлениям X и Y dxy( DY, DX) ), % Или расстояния по направлениям Y и X X1 is X + DX, % X1 расположен в пределах шахматной доски надоске( X1), Y1 is Y + DY, % Y1 расположен в пределах шахматной доски надоске( Y1).
dxy( 2, 1). % 2 поля вправо, 1 поле вперед dxy( 2, -1). % 2 поля вправо, 1 поле назад dxy( -2, 1). % 2 поля влево, 1 поле вперед dxy( -2, -1). % 2 поля влево, 1 поле назад
надоске( Коорд) :- 0 < Коорд, Коорд < 9. % Координаты в пределах доски
(b) путьконя( [ Поле]). % Конь стоит на поле Поле путьконя( [S1, S2 | Остальные] ) :- ходконя( S1, S2), путьконя( [S2 | Остальные]).
(c) ?- путьконя( [2/1, R, 5/4, S, Х/8] ).