?- #move(3,left,right,center)move top disk from left to rightmove top disk from left to centermove top disk from right to centermove top disk from left to rightmove top disk from center to leftmove top disk from center to rightmove top disk from left to right-> ( ) := 1.00 (0.013) 1move {
(1,:X,:Y,_) :- console.puts("move top disk from ",:X," to ",:Y);
(:N ?[gt(1)],:X,:Y,:Z) :- sub(:N,1,:M), #move(:M,:X,:Z,:Y), #move(1,:X,:Y,_), #move(:M,:Z,:Y,:X);
}