git-svn-id: https://yap.svn.sf.net/svnroot/yap/trunk@1973 b08c6af1-5177-4d33-ba66-4b1c6b8b522a
		
			
				
	
	
		
			149 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			149 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| ================================================================
 | |
| Logtalk - Open source object-oriented logic programming language
 | |
| Release 2.30.7
 | |
| 
 | |
| Copyright (c) 1998-2007 Paulo Moura.  All Rights Reserved.
 | |
| ================================================================
 | |
| 
 | |
| 
 | |
| % start by loading the example and the required library files:
 | |
| 
 | |
| | ?- logtalk_load(polygons(loader)).
 | |
| ...
 | |
| 
 | |
| 
 | |
| % first create four polygons and move each one to a different position
 | |
| 
 | |
| | ?- triangle::new(t, [position-(4, 5)]).
 | |
| yes
 | |
| 
 | |
| | ?- square::new(s, [position-(3, 2)]).
 | |
| yes
 | |
| 
 | |
| | ?- pentagon::new(p, [position-(7, 1)]).
 | |
| yes
 | |
| 
 | |
| | ?- hexagon::new(h, [position-(2, 4)]).
 | |
| yes
 | |
| 
 | |
| 
 | |
| % create two tuples of relation concentric
 | |
| 
 | |
| | ?- concentric::add_tuple([t, s]).
 | |
| yes
 | |
| 
 | |
| | ?- concentric::add_tuple([p, h]).
 | |
| yes
 | |
| 
 | |
| 
 | |
| % check results
 | |
| 
 | |
| | ?- concentric::tuple(Tuple), write(Tuple), nl, fail.
 | |
| [t,s]
 | |
| [p,h]
 | |
| no
 | |
| 
 | |
| | ?- t::position(Xt, Yt), s::position(Xs, Ys), p::position(Xp, Yp), h::position(Xh, Yh).
 | |
| Xh = 7,
 | |
| Yh = 1,
 | |
| Xp = 7,
 | |
| Xs = 4,
 | |
| Xt = 4,
 | |
| Yp = 1,
 | |
| Ys = 5,
 | |
| Yt = 5
 | |
| yes
 | |
| 
 | |
| | ?- after_event_registry::monitors(Ma).
 | |
| Ma = [concentric]
 | |
| yes
 | |
| 
 | |
| 
 | |
| % move triangle to a new position
 | |
| 
 | |
| | ?- t::move(3, 3).
 | |
| yes
 | |
| 
 | |
| 
 | |
| % move the hexagon to a new position
 | |
| 
 | |
| | ?- h::move(8, 4).
 | |
| yes
 | |
| 
 | |
| 
 | |
| % check results
 | |
| 
 | |
| | ?- concentric::tuple(Tuple), write(Tuple), nl, fail.
 | |
| [t,s]
 | |
| [p,h]
 | |
| no
 | |
| 
 | |
| | ?- t::position(Xt, Yt), s::position(Xs, Ys), p::position(Xp, Yp), h::position(Xh, Yh).
 | |
| Xh = 8,
 | |
| Yh = 4,
 | |
| Xp = 8,
 | |
| Xs = 3,
 | |
| Xt = 3,
 | |
| Yp = 4,
 | |
| Ys = 3,
 | |
| Yt = 3
 | |
| yes
 | |
| 
 | |
| | ?- after_event_registry::monitors(Ma).
 | |
| Ma = [concentric]
 | |
| yes
 | |
| 
 | |
| 
 | |
| % create another tuple of relation concentric
 | |
| 
 | |
| | ?- concentric::add_tuple([t, p]).
 | |
| yes
 | |
| 
 | |
| 
 | |
| % move the pentagon to a new position
 | |
| 
 | |
| | ?- p::move(2, 7).
 | |
| yes
 | |
| 
 | |
| 
 | |
| % check results
 | |
| 
 | |
| | ?- concentric::tuple(Tuple), write(Tuple), nl, fail.
 | |
| [t,s]
 | |
| [p,h]
 | |
| [t,p]
 | |
| no
 | |
| 
 | |
| | ?- t::position(Xt, Yt), s::position(Xs, Ys), p::position(Xp, Yp), h::position(Xh, Yh).
 | |
| Xh = 2,
 | |
| Yh = 7,
 | |
| Xp = 2,
 | |
| Xs = 2,
 | |
| Xt = 2,
 | |
| Yp = 7,
 | |
| Ys = 7,
 | |
| Yt = 7
 | |
| yes
 | |
| 
 | |
| | ?- after_event_registry::monitors(Monitors).
 | |
| Monitors = [concentric]
 | |
| yes
 | |
| 
 | |
| 
 | |
| % clean up instances, tuples and monitors
 | |
| 
 | |
| | ?- concentric::remove_all_tuples.
 | |
| yes
 | |
| 
 | |
| | ?- triangle::delete(t).
 | |
| yes
 | |
| 
 | |
| | ?- square::delete(s).
 | |
| yes
 | |
| 
 | |
| | ?- pentagon::delete(p).
 | |
| yes
 | |
| 
 | |
| | ?- hexagon::delete(h).
 | |
| yes
 |