home *** CD-ROM | disk | FTP | other *** search
/ minnie.tuhs.org / unixen.tar / unixen / PDP-11 / Distributions / ucb / spencer_2bsd.tar.gz / 2bsd.tar / src / pascal / tests / hanoi.p < prev    next >
Text File  |  1980-02-17  |  658b  |  36 lines

  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.
  36.