This repository has been archived on 2023-08-20. You can view files and clone it, but cannot push or open issues or pull requests.
yap-6.3/Logtalk/examples/polygons/SCRIPT
pmoura 81c503970a Logtalk 2.11.0 files.
git-svn-id: https://yap.svn.sf.net/svnroot/yap/trunk@462 b08c6af1-5177-4d33-ba66-4b1c6b8b522a
2002-05-06 13:10:02 +00:00

143 lines
2.0 KiB
Plaintext

=================================================================
Logtalk - Object oriented extension to Prolog
Release 2.11.0
Copyright (c) 1998-2002 Paulo Moura. All Rights Reserved.
=================================================================
% 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