View source with raw comments or as raw
    1% Tower of Hanoi, 7 pegs
    2
    3% Move N disks in T moves.
    4hanoi(N, T) :-
    5    moven(N, 0, T, 1, 2, 3).
    6
    7% Move N disks from peg A to peg B using peg C. Assign move numbers.
    8moven(N, Ti, To, A, B, C) :-
    9    N > 1,
   10    N1 is N - 1,
   11    moven(N1, Ti, T2, A, C, B),
   12    T3 is T2 + 1,
   13    move(T3, A, B),
   14    moven(N1, T3, To, C, B, A).
   15moven(1, Ti, To, A, B, _) :-
   16    To is Ti + 1,
   17    move(To, A, B).
   18
   19% move T: move disk from P1 to P2.
   20% any move may or may not be selected.
   21move(T, P1, P2) :-
   22    not negmove(T, P1, P2).
   23
   24negmove(T, P1, P2) :-
   25    not move(T, P1, P2).
   26
   27?- hanoi(7, T).