aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuca Ferrari <fluca1978@gmail.com>2022-05-17 10:06:59 +0200
committerLuca Ferrari <fluca1978@gmail.com>2022-05-17 10:06:59 +0200
commitc47425cd8822b9a4eb0c63237bca3aa136987b9b (patch)
treeedc0f03108aeb0bc426b5014e44253f637d2cc0a
parent1a6b4c6bbc7863ba26f2967d924b1abb476c11f3 (diff)
downloadperlweeklychallenge-club-c47425cd8822b9a4eb0c63237bca3aa136987b9b.tar.gz
perlweeklychallenge-club-c47425cd8822b9a4eb0c63237bca3aa136987b9b.tar.bz2
perlweeklychallenge-club-c47425cd8822b9a4eb0c63237bca3aa136987b9b.zip
Task 1 done
-rwxr-xr-xchallenge-165/luca-ferrari/raku/ch-1.p635
1 files changed, 35 insertions, 0 deletions
diff --git a/challenge-165/luca-ferrari/raku/ch-1.p6 b/challenge-165/luca-ferrari/raku/ch-1.p6
new file mode 100755
index 0000000000..6ceb5bcc2b
--- /dev/null
+++ b/challenge-165/luca-ferrari/raku/ch-1.p6
@@ -0,0 +1,35 @@
+#!raku
+
+# Perl Weekly Challenge 165
+
+use SVG;
+sub MAIN( Str $filename = 'task1.svg' ) {
+ my ( @points, @lines );
+
+ for $*IN.lines() -> $line {
+ my @elements = $line.split(',').map( *.trim );
+ next if @elements.elems !%% 2 && @elements.elems !%% 4;
+
+ if @elements.elems == 2 {
+ # a point
+ my $point = circle => [ cx => @elements[ 0 ].Int,
+ cy => @elements[ 1 ].Int,
+ r => 5,
+ fill => 'blue' ];
+ @points.push: $point;
+ }
+ else {
+ # a line
+ my $line = line => [ x1 => @elements[ 0 ].Int,
+ y1 => @elements[ 1 ].Int,
+ x2 => @elements[ 3 ].Int,
+ y2 => @elements[ 3 ].Int,
+ stroke => 'magenta' ];
+ @lines.push: $line;
+ }
+
+ }
+
+ $filename.IO.spurt( SVG.serialize:
+ svg => [ width => 100, height => 100, |@points, |@lines ] );
+}