diff options
| author | Luca Ferrari <fluca1978@gmail.com> | 2022-02-14 13:25:55 +0100 |
|---|---|---|
| committer | Luca Ferrari <fluca1978@gmail.com> | 2022-02-14 13:25:55 +0100 |
| commit | e7e88e0ea98728111f4a31b39c213cf6d6ac5c8e (patch) | |
| tree | 6f34eb402717c0fd0a96d308b5f1e07735a5b349 | |
| parent | 7010422e62df71969f2037b48abd2e3e62125591 (diff) | |
| download | perlweeklychallenge-club-e7e88e0ea98728111f4a31b39c213cf6d6ac5c8e.tar.gz perlweeklychallenge-club-e7e88e0ea98728111f4a31b39c213cf6d6ac5c8e.tar.bz2 perlweeklychallenge-club-e7e88e0ea98728111f4a31b39c213cf6d6ac5c8e.zip | |
Improved task 2: avoid non overlapping rectangles.
| -rwxr-xr-x | challenge-152/luca-ferrari/raku/ch-2.p6 | 12 |
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 ) ); |
