aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--challenge-084/markus-holzer/raku/ch-1.raku6
-rw-r--r--challenge-084/markus-holzer/raku/ch-2.raku20
2 files changed, 26 insertions, 0 deletions
diff --git a/challenge-084/markus-holzer/raku/ch-1.raku b/challenge-084/markus-holzer/raku/ch-1.raku
new file mode 100644
index 0000000000..6fac398225
--- /dev/null
+++ b/challenge-084/markus-holzer/raku/ch-1.raku
@@ -0,0 +1,6 @@
+unit sub MAIN( Int $i );
+
+say -2147483647 <= $i <= 2147483647
+ ?? $i.subst( / \d+ /, *.flip )
+ !! 0;
+
diff --git a/challenge-084/markus-holzer/raku/ch-2.raku b/challenge-084/markus-holzer/raku/ch-2.raku
new file mode 100644
index 0000000000..d369f1000e
--- /dev/null
+++ b/challenge-084/markus-holzer/raku/ch-2.raku
@@ -0,0 +1,20 @@
+my @matrix[4,4] =
+ < 1 1 0 1 >,
+ < 1 1 0 0 >,
+ < 0 1 1 1 >,
+ < 1 0 1 1 >;
+
+my ( $h, $w ) = @matrix.shape;
+
+# I had no idea min is also an infix until yesterdays review video
+my @s = gather for [X] 0..^$h, 0..^$w, 1..$h min $w -> ($r, $c, $o) {
+ take $r, $c, $o if
+ $c + $o < $w && # check boundaries
+ $r + $o < $h &&
+ all @matrix[ $r+$o; $c+$o ], # check corners
+ @matrix[ $r+$o; $c ],
+ @matrix[ $r; $c+$o ],
+ @matrix[ $r; $c] }
+
+say +@s;
+"r: {.[0]+1}, c:{.[1]+1}, {.[2]+1}x{.[2]+1}".say for @s.sort(*.[2]);