home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / lifeos2.zip / LIFE-1.02 / TESTS / LF / JUNK.LF < prev    next >
Text File  |  1996-06-04  |  610b  |  39 lines

  1. start([x,x,x,' ',o,o,o]).
  2. finish([o,o,o,' ',x,x,x]).
  3.  
  4. move([H|T]    ,[H|U]        ,D)        :-move(T,U,D).
  5.  
  6. move([x,' '|T]    ,[' ',x|T]    ,'x move right').
  7. move([' ',o|T]    ,[o,' '|T]    ,'o move left ').
  8. move([x,o,' '|T],[' ',o,x|T]    ,'x jump right').
  9. move([' ',x,o|T],[o,x,' '|T]    ,'o jump left ').
  10.  
  11. go(A,A,[]    ).
  12. go(A,C,[[M|B]|P]):-
  13.            move(A,B,M),
  14.            go(B,C,P).
  15.  
  16. solution([['Start       '|A]|S]):-
  17.                 start(A),
  18.                 finish(B),
  19.                 go(A,B,S).
  20.  
  21. pretty([[A|B]|S]):-
  22.         write(A),
  23.         write(' -> '),
  24.         write(B),
  25.         nl,
  26.         pretty(S).
  27.  
  28. pretty([]):-
  29.         write('Solved !!'),
  30.         nl.
  31.  
  32. solve:-
  33.     nl,
  34.     nl,
  35.     solution(S),
  36.     pretty(S),
  37.     nl,
  38.     fail.
  39.