aboutsummaryrefslogtreecommitdiff
path: root/challenge-084/markus-holzer
diff options
context:
space:
mode:
authorMarkus "Holli" Holzer <holli.holzer@gmail.com>2020-10-27 01:20:59 +0100
committerMarkus "Holli" Holzer <holli.holzer@gmail.com>2020-10-27 01:20:59 +0100
commit23b9eb2d9a97e4ffe36a4de29670fa922d77f006 (patch)
treeda720178f17ff2b7488f1570ccb25640ebf1f6f2 /challenge-084/markus-holzer
parenteda3886d2171bfe69edab245cec45e08bda60997 (diff)
downloadperlweeklychallenge-club-23b9eb2d9a97e4ffe36a4de29670fa922d77f006.tar.gz
perlweeklychallenge-club-23b9eb2d9a97e4ffe36a4de29670fa922d77f006.tar.bz2
perlweeklychallenge-club-23b9eb2d9a97e4ffe36a4de29670fa922d77f006.zip
less work and actually correct.
Diffstat (limited to 'challenge-084/markus-holzer')
-rw-r--r--challenge-084/markus-holzer/raku/ch-2.raku47
1 files changed, 30 insertions, 17 deletions
diff --git a/challenge-084/markus-holzer/raku/ch-2.raku b/challenge-084/markus-holzer/raku/ch-2.raku
index e5b4bb21af..3663ca45ab 100644
--- a/challenge-084/markus-holzer/raku/ch-2.raku
+++ b/challenge-084/markus-holzer/raku/ch-2.raku
@@ -1,27 +1,40 @@
unit sub MAIN( Bool :$size );
-my @matrix[4,8] =
- < 1 1 0 1 1 1 0 1 >,
- < 1 1 0 0 1 1 0 0 >,
- < 0 1 1 1 0 1 1 1 >,
- < 1 0 1 1 1 0 1 1 >;
+
+#my @matrix[4,4] =
+# < 0 1 0 1 >,
+# < 0 0 1 0 >,
+# < 1 1 0 1 >,
+# < 1 0 0 1 >;
+
+my @matrix[4,4] =
+ < 1 1 0 1 >,
+ < 1 1 0 0 >,
+ < 0 1 1 1 >,
+ < 1 0 1 1 >;
+
+#my @matrix[4,8] =
+# < 1 1 0 1 1 1 0 1 >,
+# < 1 1 0 0 1 1 0 0 >,
+# < 0 1 1 1 0 1 1 1 >,
+# < 1 0 1 1 1 0 1 1 >;
+
my ( $h, $w ) = @matrix.shape;
my @squares = gather
- for 0 ..^ $h X 0 ..^ $w -> ($r, $c) {
- for $r ^..^ $h -> $R {
- for $c ^..^ $w -> $C {
- take $r, $c, $R-$r, $C-$c if
- @matrix[ $R; $C ] &&
- @matrix[ $R; $c ] &&
- @matrix[ $r; $C ] &&
- @matrix[ $r; $c ] }}}
-
-@squares = @squares.sort: *.[2,3]
+ for 0 .. $h-2 X 0 .. $w-2 -> ( $r, $c ) {
+ for 1 .. -1 + min $h-$r, $w-$c -> $o {
+ take $r, $c, $o if
+ @matrix[ $r+$o; $c+$o ] &&
+ @matrix[ $r+$o; $c ] &&
+ @matrix[ $r; $c+$o ] &&
+ @matrix[ $r; $c ] }}
+
+@squares = @squares.sort: *.[ 2, 3 ]
if $size;
-say "Row: {.[0]}, Column:{.[1]}, Size: {.[2]}x{.[3]}"
+say "Row: { .[0] }, Column:{ .[1] }, Size: { .[2] }x{ .[2] }"
for @squares.map: 1 «+« *;
-say "Total: {+@squares}"; \ No newline at end of file
+say "Total: { +@squares }"; \ No newline at end of file