From 4ccb9d36c1f086f7155961e6836acd05dfdf4ae2 Mon Sep 17 00:00:00 2001 From: Arne Sommer Date: Sun, 10 Aug 2025 16:49:21 +0200 Subject: week 333 Arne Sommer --- challenge-333/arne-sommer/blog.txt | 1 + challenge-333/arne-sommer/raku/ch-1.raku | 24 ++++++++++++++++++++++++ challenge-333/arne-sommer/raku/ch-2.raku | 5 +++++ challenge-333/arne-sommer/raku/duplicate-zeroes | 5 +++++ challenge-333/arne-sommer/raku/straight-line | 24 ++++++++++++++++++++++++ 5 files changed, 59 insertions(+) create mode 100644 challenge-333/arne-sommer/blog.txt create mode 100755 challenge-333/arne-sommer/raku/ch-1.raku create mode 100755 challenge-333/arne-sommer/raku/ch-2.raku create mode 100755 challenge-333/arne-sommer/raku/duplicate-zeroes create mode 100755 challenge-333/arne-sommer/raku/straight-line diff --git a/challenge-333/arne-sommer/blog.txt b/challenge-333/arne-sommer/blog.txt new file mode 100644 index 0000000000..37ac339a2c --- /dev/null +++ b/challenge-333/arne-sommer/blog.txt @@ -0,0 +1 @@ +https://raku-musings.com/straight-zeros.html \ No newline at end of file diff --git a/challenge-333/arne-sommer/raku/ch-1.raku b/challenge-333/arne-sommer/raku/ch-1.raku new file mode 100755 index 0000000000..99b2cceb2a --- /dev/null +++ b/challenge-333/arne-sommer/raku/ch-1.raku @@ -0,0 +1,24 @@ +#! /usr/bin/env raku + +unit sub MAIN (*@list where @list.elems > 2 && all(@list) ~~ /^\d+\,\d+$/, + :v(:$verbose)); + +my ($Ax, $Ay) = @list.shift.split(",")>>.Int; +my ($Bx, $By) = @list.shift.split(",")>>.Int; + +while @list +{ + my ($Cx, $Cy) = @list.shift.split(",")>>.Int; + + say ": Checking if ($Ax,$Ay), ($Bx,$By), ($Cx,$Cy) forms a triangle" if $verbose; + + if $Ax * ($By - $Cy) + $Bx * ($Cy - $Ay) + $Cx * ($Ay - $By) + { + say ": trangle detected" if $verbose; + say False; + exit + } +} + +say True; + diff --git a/challenge-333/arne-sommer/raku/ch-2.raku b/challenge-333/arne-sommer/raku/ch-2.raku new file mode 100755 index 0000000000..b63febec22 --- /dev/null +++ b/challenge-333/arne-sommer/raku/ch-2.raku @@ -0,0 +1,5 @@ +#! /usr/bin/env raku + +unit sub MAIN (*@ints where @ints.elems > 0 && all(@ints) ~~ Int); + +say @ints.map({ $_ ?? $_ !! (0,0) })[*;*][0 .. @ints.end]; diff --git a/challenge-333/arne-sommer/raku/duplicate-zeroes b/challenge-333/arne-sommer/raku/duplicate-zeroes new file mode 100755 index 0000000000..b63febec22 --- /dev/null +++ b/challenge-333/arne-sommer/raku/duplicate-zeroes @@ -0,0 +1,5 @@ +#! /usr/bin/env raku + +unit sub MAIN (*@ints where @ints.elems > 0 && all(@ints) ~~ Int); + +say @ints.map({ $_ ?? $_ !! (0,0) })[*;*][0 .. @ints.end]; diff --git a/challenge-333/arne-sommer/raku/straight-line b/challenge-333/arne-sommer/raku/straight-line new file mode 100755 index 0000000000..99b2cceb2a --- /dev/null +++ b/challenge-333/arne-sommer/raku/straight-line @@ -0,0 +1,24 @@ +#! /usr/bin/env raku + +unit sub MAIN (*@list where @list.elems > 2 && all(@list) ~~ /^\d+\,\d+$/, + :v(:$verbose)); + +my ($Ax, $Ay) = @list.shift.split(",")>>.Int; +my ($Bx, $By) = @list.shift.split(",")>>.Int; + +while @list +{ + my ($Cx, $Cy) = @list.shift.split(",")>>.Int; + + say ": Checking if ($Ax,$Ay), ($Bx,$By), ($Cx,$Cy) forms a triangle" if $verbose; + + if $Ax * ($By - $Cy) + $Bx * ($Cy - $Ay) + $Cx * ($Ay - $By) + { + say ": trangle detected" if $verbose; + say False; + exit + } +} + +say True; + -- cgit