aboutsummaryrefslogtreecommitdiff
path: root/challenge-077/ash
diff options
context:
space:
mode:
authorAndrew Shitov <andy@shitov.ru>2020-09-08 10:09:25 +0200
committerAndrew Shitov <andy@shitov.ru>2020-09-08 10:09:25 +0200
commit39ff8d9c9ec712d35d3f8d07f9be84ba8f687945 (patch)
treeafe4e0d8ca8442931aa70b7d7b52ffa7abc2761f /challenge-077/ash
parenta11afdf49abe375eb94edf4d3c839e193fff3751 (diff)
downloadperlweeklychallenge-club-39ff8d9c9ec712d35d3f8d07f9be84ba8f687945.tar.gz
perlweeklychallenge-club-39ff8d9c9ec712d35d3f8d07f9be84ba8f687945.tar.bz2
perlweeklychallenge-club-39ff8d9c9ec712d35d3f8d07f9be84ba8f687945.zip
ash 77-2
Diffstat (limited to 'challenge-077/ash')
-rw-r--r--challenge-077/ash/blog1.txt1
-rw-r--r--challenge-077/ash/raku/ch-2.raku36
2 files changed, 37 insertions, 0 deletions
diff --git a/challenge-077/ash/blog1.txt b/challenge-077/ash/blog1.txt
new file mode 100644
index 0000000000..a81f60f4d3
--- /dev/null
+++ b/challenge-077/ash/blog1.txt
@@ -0,0 +1 @@
+https://andrewshitov.com/2020/09/08/lonely-x-the-weekly-challenge-77-task-2/
diff --git a/challenge-077/ash/raku/ch-2.raku b/challenge-077/ash/raku/ch-2.raku
new file mode 100644
index 0000000000..47d8524eaa
--- /dev/null
+++ b/challenge-077/ash/raku/ch-2.raku
@@ -0,0 +1,36 @@
+#!/usr/bin/env raku
+
+# Task 2 from
+# https://perlweeklychallenge.org/blog/perl-weekly-challenge-077/
+
+# Comments: https://andrewshitov.com/2020/09/08/lonely-x-the-weekly-challenge-77-task-2/
+
+my @matrix =
+ < O O X >,
+ < X O O >,
+ < X O O >; # square matrix
+
+# my @matrix =
+# < O O X O >,
+# < X O O O >,
+# < X O O X >,
+# < O X O O >;
+
+my @neighbours = ([X] (-1, 0, 1) xx 2).grep(*.all != 0);
+
+for ^@matrix X ^@matrix -> @coord {
+ next if @matrix[@coord[0]][@coord[1]] eq 'O';
+
+ @coord.put if all((@neighbours.map(* <<+>> @coord)).grep(0 <= *.all <= @matrix.end).map({
+ @matrix[$_[0]][$_[1]] eq 'O';
+ }));
+}
+
+# Output:
+# $ raku ch-2.raku
+# 0 2
+
+# Or:
+# $ raku ch-2.raku
+# 0 2
+# 2 3