/* $Id: towers.pl,v 321.1 2002-03-06 17:52:37-08 - - $ */ /* * Towers problem. */ towers( N ) :- move( N, source, spare, target ). move( 0, _, _, _ ) :- !. move( N, Source, Spare, Target ) :- M is N - 1, move( M, Source, Target, Spare ), report( Source, Target ), move( M, Spare, Source, Target ). report( Source, Target ) :- write( 'Move a disk from the ' ), write( Source ), write( ' peg to the ' ), write( Target ), write( ' peg.'), nl.