diff options
| -rw-r--r-- | challenge-077/markus-holzer/raku/ch-2.input | 3 | ||||
| -rw-r--r-- | challenge-077/markus-holzer/raku/ch-2.input.2 | 4 | ||||
| -rw-r--r-- | challenge-077/markus-holzer/raku/ch-2.raku | 14 | ||||
| -rw-r--r-- | challenge-077/markus-holzer/raku/ch-2.twitter.raku | 5 |
4 files changed, 26 insertions, 0 deletions
diff --git a/challenge-077/markus-holzer/raku/ch-2.input b/challenge-077/markus-holzer/raku/ch-2.input new file mode 100644 index 0000000000..32e25b69b9 --- /dev/null +++ b/challenge-077/markus-holzer/raku/ch-2.input @@ -0,0 +1,3 @@ +OOX +XOO +XOO diff --git a/challenge-077/markus-holzer/raku/ch-2.input.2 b/challenge-077/markus-holzer/raku/ch-2.input.2 new file mode 100644 index 0000000000..600d69c9a9 --- /dev/null +++ b/challenge-077/markus-holzer/raku/ch-2.input.2 @@ -0,0 +1,4 @@ +OOXO +XOOO +XOOX +OXOO diff --git a/challenge-077/markus-holzer/raku/ch-2.raku b/challenge-077/markus-holzer/raku/ch-2.raku new file mode 100644 index 0000000000..4d36fbb2b5 --- /dev/null +++ b/challenge-077/markus-holzer/raku/ch-2.raku @@ -0,0 +1,14 @@ +unit sub MAIN( $input-file ); + +my @input = $input-file.IO.lines.map: *.comb; + +dd ( ^@input X ^@input.head ).grep( -> ($x, $y) { + @input[$x;$y] eq "X" && @input.&stands-alone($x, $y) }); + +sub stands-alone( $matrix, $x, $y ) { + state @maybe-neighbours = (-1,-1), (-1,0), (-1,1), (0,-1), (0, 1), (1,-1), (1,0), (1,1); + + sub is-neighbour($c) { + $matrix[ $x + $c[0]; $y + $c[1] ] andthen $_ eq "X" } + + @maybe-neighbours.grep( &is-neighbour ) == 0 }
\ No newline at end of file diff --git a/challenge-077/markus-holzer/raku/ch-2.twitter.raku b/challenge-077/markus-holzer/raku/ch-2.twitter.raku new file mode 100644 index 0000000000..0619e400fe --- /dev/null +++ b/challenge-077/markus-holzer/raku/ch-2.twitter.raku @@ -0,0 +1,5 @@ +unit sub MAIN($f); +my @i=$f.IO.lines.map:{.comb}; +sub a($m,$x,$y){my &n={$m[$x+.[0];$y+.[1]] andthen $_ eq "X"} +!((-1,-1),(-1,0),(-1,1),(0,-1),(0, 1),(1,-1),(1,0),(1,1)).grep: &n} +dd (^@i X ^@i.head).grep(->($x,$y){@i[$x;$y] eq "X" && @i.&a($x,$y)})
\ No newline at end of file |
