home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 9 / 09.iso / l / l217 / 2.ddi / PROGRAMS / D_CURVE.PRO < prev    next >
Encoding:
Text File  |  1990-03-26  |  910 b   |  35 lines

  1. constants
  2.   root2 = 1.4142135624
  3.   % You must give the path to the BGI drivers here
  4.   bgi_path = "..\\bgi"
  5.                  % Hard disk users might need to set BGI_PATH="..\\bgi"
  6.                  % 2 Floppy users, set BGI_PATH = "a:"
  7.  
  8. predicates
  9.   dragon(real, integer,integer)
  10.   t(integer,integer,integer)
  11.  
  12. goal
  13.   initgraph(0,0,_,_,bgi_path), % Autoselect highest mode
  14.   getmaxX(X), Middle= X div 2,
  15.   moveto(Middle,40),
  16.   dragon(200, 270,-1),readchar(_).
  17.  
  18. clauses
  19.   dragon(L, A, Sign) :-
  20.     L > 2, !,
  21.     L1 = L / root2,
  22.     A1 = A + 45 * Sign, A2 = A - 45 * Sign,
  23.     dragon(L1, A1, 1),
  24.     dragon(L1, A2, -1).
  25.   dragon(D, A, _) :-
  26.     Dir = (A mod 360) div 90,
  27.     t(Dir,Xdir,Ydir),
  28.     Dx=D*Xdir, Dy=D*Ydir,
  29.     setcolor(Dir),
  30.     linerel(Dx,Dy).
  31.  
  32.   % Transfer a direction to Xdirection sign and YDirection sign
  33.   t(0,1,0).   t(1,0,-1).   t(2,-1,0).  t(3,0,1).
  34.   t(-1,0,1).  t(-2,-1,0).  t(-3,0,-1).
  35.