diff options
| author | Luca Ferrari <fluca1978@gmail.com> | 2022-05-17 10:06:59 +0200 |
|---|---|---|
| committer | Luca Ferrari <fluca1978@gmail.com> | 2022-05-17 10:06:59 +0200 |
| commit | c47425cd8822b9a4eb0c63237bca3aa136987b9b (patch) | |
| tree | edc0f03108aeb0bc426b5014e44253f637d2cc0a | |
| parent | 1a6b4c6bbc7863ba26f2967d924b1abb476c11f3 (diff) | |
| download | perlweeklychallenge-club-c47425cd8822b9a4eb0c63237bca3aa136987b9b.tar.gz perlweeklychallenge-club-c47425cd8822b9a4eb0c63237bca3aa136987b9b.tar.bz2 perlweeklychallenge-club-c47425cd8822b9a4eb0c63237bca3aa136987b9b.zip | |
Task 1 done
| -rwxr-xr-x | challenge-165/luca-ferrari/raku/ch-1.p6 | 35 |
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 ] ); +} |
