home *** CD-ROM | disk | FTP | other *** search
Prolog Source | 1987-12-15 | 1.1 KB | 37 lines |
- /*------------ DETERM2.PRO ------------------*/
- /* Vollmalen des Bildschirms als rekursiver */
- /* Prozeß. Demonstriert, wie der Einsatz des */
- /* Cut Stackprobleme eliminiert. */
- /* (C) Stefan Musche */
-
- predicates
- vollmalen(integer,integer)
- dummy(integer,integer) /* Für's Backtracking */
-
- clauses
- dummy(1,2).
- dummy(3,4).
-
- vollmalen(_,200) :- /* Bei Zeile 200 -> Feierabend */
- !.
- vollmalen(640,Y) :- /* Ende der Zeile */
- dummy(_,_), /* Backtracking */
- !, /* Cut für Terminierung */
- Y1 = Y + 1, /* Incrementieren */
- vollmalen(0,Y1).
- vollmalen(X,Y) :- /* Punkte setzen */
- dummy(_,_), /* Backtracking */
- !,
- XP = X * 50, /* Virtuelles Koordina- */
- YP = Y * 160, /* tensystem */
- dot(YP,XP,1), /* Ein Punkt */
- X1 = X + 1, /* Incrementieren */
- vollmalen(X1,Y). /* Zum nächsten Punkt */
-
- goal
- graphics(1,2,0),
- vollmalen(0,0),
- readchar(_), /* Warte auf Taste */
- text.
-
-