diff options
| author | Markus "Holli" Holzer <holli.holzer@gmail.com> | 2020-10-27 01:20:59 +0100 |
|---|---|---|
| committer | Markus "Holli" Holzer <holli.holzer@gmail.com> | 2020-10-27 01:20:59 +0100 |
| commit | 23b9eb2d9a97e4ffe36a4de29670fa922d77f006 (patch) | |
| tree | da720178f17ff2b7488f1570ccb25640ebf1f6f2 /challenge-084/markus-holzer | |
| parent | eda3886d2171bfe69edab245cec45e08bda60997 (diff) | |
| download | perlweeklychallenge-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.raku | 47 |
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 |
