Новичок
Профиль
Группа: Участник
Сообщений: 1
Регистрация: 19.6.2007
Репутация: нет Всего: нет
|
Надо реализовать дейсвия на gnu prolog, как это сделать на вижул прологе понятно, а как перевести на гну нет. Может что-нить подскажите. Код | DOMAINS Name= coffee; coffeegrinder;ground(Name);water;coffeemachine;dresser; shop;home; man;range; have(Name); nohave(Name);near(Name); far(Name);in(Name,Name); noin(Name,Name); on(Name,Name); noon(Name,Name) State=state(Name, Name, Name, Name);state2(Name,Name) Action=put; take; buy; go
PREDICATES act(State,Action,State) st(State) canweld(State)
CLAUSES
act(state(on(man,home), nohave(coffee), in(coffeegrinder,dresser), noon(coffeemachine,range)), go,state(on(man,shop),nohave(coffee), in(coffeegrinder,dresser), noon(coffeemachine,range))).
act(state(on(man,shop),nohave(coffee), in(coffeegrinder,dresser), noon(coffeemachine,range)), buy,state(on(man,home),have(coffee), in(coffeegrinder,dresser), noon(coffeemachine,range))).
act(state(on(man,home),have(coffee), in(coffeegrinder,dresser), noon(coffeemachine,range)), go,state(near(dresser),have(coffee), in(coffeegrinder,dresser), noon(coffeemachine,range))).
act(state(near(dresser),_,in(coffeegrinder,dresser),_), take,state(near(dresser),_,have(coffeegrinder),_)).
act(state(_,have(ground(coffee)),_,_),go,state(near(range),have(ground(coffee)),_,_)).
act(state2(noin(water,coffeemachine), noin(ground(coffee), coffeemachine)),put, state2(in(water,coffeemachine), in(ground(coffee), coffeemachine))).
st(state(_,_,_,on(coffeemachine,range))):-st(state(near(range),_,_,_)),st(state2(in(water,coffeemachine), in(ground(coffee), coffeemachine))). st(state(_,have(ground(coffee)),_,_)):-st(state(_,_,have(coffeegrinder),_)).
canweld(state(_,_,_,on(coffeemachine,range))). canweld(State1):-act(State1,_,State2),canweld(State2). GOAL /*canweld(state(on(man,home), nohave(coffee), in(coffeegrinder,dresser), noon(coffeemachine,range))).*/ /*canweld(state(on(man,home), nohave(coffee), noin(coffeegrinder,dresser), noon(coffeemachine,range))).*/ canweld(state(_, nohave(coffee), noin(coffeegrinder,dresser), noon(coffeemachine,range))).
|
|