home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / lifeos2.zip / LIFE-1.02 / EXAMPLES / XXXOOO.LF < prev   
Text File  |  1996-06-04  |  720b  |  45 lines

  1. % Copyright 1992 Digital Equipment Corporation
  2. % All Rights Reserved
  3.  
  4. % This program is compatible with Prolog.
  5.  
  6. module("xxxooo") ?
  7. public(xxxooo) ?
  8.  
  9. xxxooo :-
  10.     nl,
  11.     nl,
  12.     solution(S),
  13.     pretty(S),
  14.     nl,
  15.     fail.
  16.  
  17. start([x,x,x,' ',o,o,o]).
  18. finish([o,o,o,' ',x,x,x]).
  19.  
  20. move([H|T],[H|U],D) :- move(T,U,D).
  21. move([x,' '|T],[' ',x|T],'x move right').
  22. move([' ',o|T],[o,' '|T],'o move left ').
  23. move([x,o,' '|T],[' ',o,x|T],'x jump right').
  24. move([' ',x,o|T],[o,x,' '|T],'o jump left ').
  25.  
  26. go(A,A,[]).
  27. go(A,C,[[M|B]|P]):-
  28.     move(A,B,M),
  29.     go(B,C,P).
  30.  
  31. solution([['Start       '|A]|S]):-
  32.     start(A),
  33.     finish(B),
  34.     go(A,B,S).
  35.  
  36. pretty([[A|B]|S]):-
  37.     write(A),
  38.     write(' -> '),
  39.     write(B),
  40.     nl,
  41.     pretty(S).
  42.  
  43. pretty([]):-
  44.     write('Solved !!'),
  45.     nl.