aboutsummaryrefslogtreecommitdiff
path: root/challenge-152
diff options
context:
space:
mode:
authorLuca Ferrari <fluca1978@gmail.com>2022-02-14 13:25:55 +0100
committerLuca Ferrari <fluca1978@gmail.com>2022-02-14 13:25:55 +0100
commite7e88e0ea98728111f4a31b39c213cf6d6ac5c8e (patch)
tree6f34eb402717c0fd0a96d308b5f1e07735a5b349 /challenge-152
parent7010422e62df71969f2037b48abd2e3e62125591 (diff)
downloadperlweeklychallenge-club-e7e88e0ea98728111f4a31b39c213cf6d6ac5c8e.tar.gz
perlweeklychallenge-club-e7e88e0ea98728111f4a31b39c213cf6d6ac5c8e.tar.bz2
perlweeklychallenge-club-e7e88e0ea98728111f4a31b39c213cf6d6ac5c8e.zip
Improved task 2: avoid non overlapping rectangles.
Diffstat (limited to 'challenge-152')
-rwxr-xr-xchallenge-152/luca-ferrari/raku/ch-2.p612
1 files changed, 12 insertions, 0 deletions
diff --git a/challenge-152/luca-ferrari/raku/ch-2.p6 b/challenge-152/luca-ferrari/raku/ch-2.p6
index 051e63023b..65be181aea 100755
--- a/challenge-152/luca-ferrari/raku/ch-2.p6
+++ b/challenge-152/luca-ferrari/raku/ch-2.p6
@@ -15,7 +15,19 @@ class Rectangle {
* abs( $!corner-right.y - $!corner-left.y );
}
+
+ method !is-overlapping( Rectangle $r ) {
+ ( $!corner-left.x <= $r.corner-left.x <= $!corner-right.x
+ || $!corner-left.x <= $r.corner-righ.x <= $!corner-right.x )
+ &&
+ ( $!corner-left.y <= $r.corner-left.y <= $!corner-right.y
+ || $!corner-left.y <= $r.corner-right.y <= $!corner-right.y );
+
+ }
+
method overlapping-area( Rectangle $r ) {
+ return 0 if ! self!is-overlapping( $r );
+
my $left = Point.new( x => max( $!corner-left.x, $r.corner-left.x ),
y => max( $!corner-left.y, $r.corner-left.y )
);