Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [Prolog] 3-х мерный лабиринт


Автор: alisa1988 5.12.2008, 19:42
Ребят, помогите пожалуйста написать след-ю программу "Дан 3-х мерный лабиринт. Найти для него выход для змеи длиной N при условии, что эта змея может одновременно быть согнута в M раз".

вот некоторые наработки(правда не мои)...

сдвиг(Пред, Тек, След, Изломов):-
    Тек = k(X,Y,Z),
    приращение(I,J,K),
    X1=X+I, Y1=Y+J, Z1=Z+K,
    След=k(X1,Y1,Z1),
    not(Пред = След),
    внутриКуба(След),
    излом(Пред,Тек,След,Изломов).

приращение(1,0,0).
приращение(-1,0,0).
%...

шаг([A,B|L], [C,A,B|L1],K,K1):-
    сдвиг(B,A,C,Изл1),
    реверс(L, L2),
    L2 = [P,Q,R|_],
    сдвиг(P,Q,R,Изл2),
    L2 = [_|L3],
    реверс(L3,L1),
    K1=K+Изл1-Изл2.

путь(Зм, Путь, Путь, _, _):- финиш(Зм).
путь(Зм,ТекПуть, Путь, K, M):-
    шаг(Зм, Зм1, K, K1),
    K1 <= M,
    not(препятствие(Зм1)),
    not(принадл(Зм1, Путь)),
    путь(Зм1, [Зм1 | ТекПуть], Путь, K1, M).


очень надо, помогите плиз...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)