Annotation of 3BSD/cmd/px/hanoi.p, revision 1.1.1.1

1.1       root        1: program hanoi(input,output);
                      2: const print = 0;
                      3:        DISK = 14;
                      4: var num: array[1..3] of integer;
                      5:        ow: integer;
                      6:     cnt: integer;
                      7:     disk: integer;
                      8: procedure mov(n,f,t : integer);
                      9: var o: integer;
                     10: begin
                     11:        if n = 1 then begin
                     12:                num[f] := num[f] - 1;
                     13:                num[t] := num[t] - 1;
                     14:                if print = 1 then writeln('Move ',f, ' to ', t);
                     15:                cnt := cnt + 1;
                     16:                end
                     17:        else begin
                     18:                o := 6 - (f+t);
                     19:                mov(n-1,f,o);
                     20:                mov(1,f,t);
                     21:                mov(n-1,o,t);
                     22:                end
                     23: end;
                     24: 
                     25: begin
                     26:        disk := DISK;
                     27:        writeln('Number: ');
                     28:        read(disk);
                     29:        num[1] := disk;
                     30:        cnt := 0;
                     31:        if print = 1 then writeln('start ',disk);
                     32:        ow := wallclock;
                     33:        mov(disk,1,3);
                     34:        writeln('For ',disk:3,' ',cnt:10,' steps, time',wallclock-ow);
                     35: end.

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.