Source Code for "Towers of Hanoi"


DOMAINS
  loc =right;middle;left

PREDICATES
  hanoi(integer)
  move(integer,loc,loc,loc)
  inform(loc,loc)

CLAUSES
  hanoi(N):-
	move(N,left,middle,right).
	move(1,A,_,C):-
	inform(A,C),!.

  move(N,A,B,C):-
	N1=N-1,
	move(N1,A,C,B),
	inform(A,C),
	move(N1,B,A,C).

  inform(Loc1, Loc2):-
	write("\nMove a disk from ", Loc1, " to ", Loc2).

GOAL
  hanoi(3).