Advertisement
Guest User

Untitled

a guest
Jul 1st, 2015
204
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Prolog 0.85 KB | None | 0 0
  1. domains
  2.  Fact = assembled; disassembled; charged; uncharged; on_table; in_hands;
  3.  state(Fact,Fact,Fact)
  4.  Action = disassemble; uncharge; put_on_table; take
  5.  
  6. predicates
  7.  nondeterm act(Fact,Action,Fact)
  8.  nondeterm canAct(Fact)
  9.  
  10. clauses
  11.  act(state(assembled, charged, on_table),take,
  12.   state(assembled, charged, in_hands)) :- write(take),nl.
  13.  act(state(assembled, charged, in_hands),uncharge,
  14.   state(assembled, uncharged, in_hands)) :- write(uncharge),nl.
  15.  act(state(assembled, uncharged, in_hands),disassemble,
  16.   state(disassembled, uncharged, in_hands)) :- write(disassemble), nl.
  17.  act(state(disassembled, uncharged, in_hands), put_on_table,
  18.   state(disassembled, uncharged, on_table)) :- write(put_on_table), nl.
  19.  canAct(state(_,uncharged,_)).
  20.  canAct(State1):- act(State1, Act, State2), canAct(State2).
  21.  
  22. goal
  23.  canAct (state(assembled,charged,in_
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement