home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 9 / 09.iso / l / l210 / 1.ddi / EXAMPLES.ARC / CH18EX05.PRO < prev    next >
Encoding:
Prolog Source  |  1988-06-21  |  536 b   |  26 lines

  1. /*
  2.    Turbo Prolog 2.0 Chapter 18, Example Program 5
  3.    
  4.    Copyright (c) 1986, 88 by Borland International, Inc
  5.    
  6. */
  7.    
  8. domains
  9.    loc = right; middle; left
  10.  
  11. predicates
  12.    hanoi(integer)
  13.    move(integer, loc, loc, loc)
  14.    inform(loc, loc)
  15.  
  16. clauses
  17.    hanoi(N) :- move(N, left, middle, right).
  18.  
  19.    move(1, A, _, C) :- inform(A, C), !.
  20.  
  21.    move(N, A, B, C) :-
  22.        N1=N-1, move(N1, A, C, B),
  23.       inform(A, C), move(N1, B, A, C).
  24.  
  25.    inform(Loc1, Loc2) :- write("\nMove a disk from ", Loc1, " to ", Loc2).
  26.