| 
									
										
										
										
											2001-06-06 19:40:57 +00:00
										 |  |  | ================================================================= | 
					
						
							|  |  |  | Logtalk - Object oriented extension to Prolog | 
					
						
							| 
									
										
										
										
											2006-03-26 17:31:34 +00:00
										 |  |  | Release 2.27.1 | 
					
						
							| 
									
										
										
										
											2001-06-06 19:40:57 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2006-02-10 17:44:05 +00:00
										 |  |  | Copyright (c) 1998-2006 Paulo Moura.  All Rights Reserved. | 
					
						
							| 
									
										
										
										
											2001-06-06 19:40:57 +00:00
										 |  |  | ================================================================= | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2004-11-29 20:36:31 +00:00
										 |  |  | % start by loading the necessary library and support example files (if not  | 
					
						
							|  |  |  | % already loaded): | 
					
						
							| 
									
										
										
										
											2004-06-13 18:04:28 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2004-11-29 20:36:31 +00:00
										 |  |  | | ?- logtalk_load([library(events_loader), library(types_loader), library(metapredicates_loader), library(hierarchies_loader)]). | 
					
						
							|  |  |  | ... | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | | ?- logtalk_load(roots(loader)). | 
					
						
							|  |  |  | ... | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | | ?- logtalk_load(relations(loader)). | 
					
						
							|  |  |  | ... | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | % now you are ready for loading the example: | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | | ?- logtalk_load(points(loader)). | 
					
						
							| 
									
										
										
										
											2004-06-13 18:04:28 +00:00
										 |  |  | ... | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2001-06-06 19:40:57 +00:00
										 |  |  | % let's start with a simple point: | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | | ?- point::new(Point,[position-(1, 3)]), Point::(print, move(7, 4), print). | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | p1 @ (1, 3) | 
					
						
							|  |  |  | p1 @ (7, 4) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Point = p1 ?  | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | yes | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | % same problem but with bounds on coordinate values: | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | | ?- bounded_point::new(Point,[position-(1, 3), bounds(x)-(0, 13), bounds(y)-(-7, 7)]), Point::(print, move(7, 4), print). | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | bounds(x) : 0,13 | 
					
						
							|  |  |  | bounds(y) : -7,7 | 
					
						
							|  |  |  | bp2 @ (1, 3) | 
					
						
							|  |  |  | bounds(x) : 0,13 | 
					
						
							|  |  |  | bounds(y) : -7,7 | 
					
						
							|  |  |  | bp2 @ (7, 4) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Point = bp2 ?  | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | yes | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | % same problem but storing the history of coordinate values: | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | | ?- history_point::new(Point,[position-(1, 3)]), Point::(print, move(7, 4), print). | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | location history: [] | 
					
						
							|  |  |  | hp3 @ (1, 3) | 
					
						
							|  |  |  | location history: [(1,3)] | 
					
						
							|  |  |  | hp3 @ (7, 4) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Point = hp3 ?  | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | yes | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | % same problem but with bounds on coordinate values and storing past values: | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | | ?- bounded_history_point::new(Point,[position-(1, 3), bounds(x)-(0, 13), bounds(y)-(-7, 7)]), Point::(print, move(7, 4), print). | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | bounds(x) : 0,13 | 
					
						
							|  |  |  | bounds(y) : -7,7 | 
					
						
							|  |  |  | location history: [] | 
					
						
							|  |  |  | bhp4 @ (1, 3) | 
					
						
							|  |  |  | bounds(x) : 0,13 | 
					
						
							|  |  |  | bounds(y) : -7,7 | 
					
						
							|  |  |  | location history: [(1,3)] | 
					
						
							|  |  |  | bhp4 @ (7, 4) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Point = bhp4 ?  | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | yes | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | % clean up instances: | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2002-04-03 13:26:59 +00:00
										 |  |  | | ?- (point, bounded_point, history_point, bounded_history_point)::delete_all. | 
					
						
							| 
									
										
										
										
											2001-06-06 19:40:57 +00:00
										 |  |  | yes |