home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / 1988 / 03 / prolog / determ2.pro < prev    next >
Encoding:
Prolog Source  |  1987-12-15  |  1.1 KB  |  37 lines

  1. /*------------ DETERM2.PRO ------------------*/
  2. /* Vollmalen des Bildschirms als rekursiver  */
  3. /* Prozeß. Demonstriert, wie der Einsatz des */
  4. /* Cut Stackprobleme eliminiert.             */
  5. /*        (C) Stefan Musche                  */
  6.  
  7. predicates 
  8.   vollmalen(integer,integer)
  9.   dummy(integer,integer) /* Für's Backtracking */
  10.  
  11. clauses
  12.   dummy(1,2).
  13.   dummy(3,4).
  14.   
  15.   vollmalen(_,200) :- /* Bei Zeile 200 -> Feierabend */
  16.     !.         
  17.   vollmalen(640,Y) :- /* Ende der Zeile       */
  18.     dummy(_,_),       /* Backtracking         */
  19.     !,              /* Cut für Terminierung */
  20.     Y1 = Y + 1,       /* Incrementieren       */
  21.     vollmalen(0,Y1).
  22.   vollmalen(X,Y) :-   /* Punkte setzen        */
  23.     dummy(_,_),       /* Backtracking         */
  24.     !,
  25.     XP = X *  50,     /* Virtuelles Koordina- */
  26.     YP = Y * 160,     /* tensystem            */
  27.     dot(YP,XP,1),     /* Ein Punkt            */
  28.     X1 = X + 1,       /* Incrementieren       */
  29.     vollmalen(X1,Y).  /* Zum nächsten Punkt   */
  30.     
  31. goal
  32.    graphics(1,2,0), 
  33.    vollmalen(0,0),
  34.    readchar(_),    /* Warte auf Taste */
  35.    text.             
  36.     
  37.