From de8820341c75c44bfa1b66dcaccbd9116681067e Mon Sep 17 00:00:00 2001 From: 冯昶 Date: Tue, 17 Jan 2023 10:04:44 +0800 Subject: challenge 200, raku solutions --- challenge-200/feng-chang/raku/ch-1.raku | 8 ++++++++ challenge-200/feng-chang/raku/ch-2.raku | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 40 insertions(+) create mode 100755 challenge-200/feng-chang/raku/ch-1.raku create mode 100755 challenge-200/feng-chang/raku/ch-2.raku diff --git a/challenge-200/feng-chang/raku/ch-1.raku b/challenge-200/feng-chang/raku/ch-1.raku new file mode 100755 index 0000000000..e3decf7bec --- /dev/null +++ b/challenge-200/feng-chang/raku/ch-1.raku @@ -0,0 +1,8 @@ +#!/bin/env raku + +unit sub MAIN(*@N); + +.put for (^+@N X ^+@N) + .grep({ .[1] - .[0] > 1 }) + .grep({ [==] (.[0] ..^ .[1]).map({ @N[$_+1] - @N[$_] }) }) + .map({ "({ @N[.[0] .. .[1]].join(', ') })" }); diff --git a/challenge-200/feng-chang/raku/ch-2.raku b/challenge-200/feng-chang/raku/ch-2.raku new file mode 100755 index 0000000000..e50151bf9a --- /dev/null +++ b/challenge-200/feng-chang/raku/ch-2.raku @@ -0,0 +1,32 @@ +#!/bin/env raku + +use v6.d; +unit sub MAIN(UInt:D $n); + +my @N = $n.comb; +my @truth is Array = ; +my @display = [' ' xx (9 * @N.elems - 2)] xx 7; +my $offset = 0; + +for @N -> $d { + for @truth[$d].comb -> $seg { + given $seg { + when 'a' { @display[0;$offset..$offset+6] X= '-'; } + when 'b' { @display[1..2;$offset+6] X= '|'; } + when 'c' { @display[4..5;$offset+6] X= '|'; } + when 'd' { @display[6;$offset..$offset+6] X= '-'; } + when 'e' { @display[4..5;$offset] X= '|'; } + when 'f' { @display[1..2;$offset] X= '|'; } + when 'g' { @display[3;$offset..$offset+6] X= '-'; } + default { die "wrong segment «$seg»"; } + } + + #| must do something here + #my $question = 'but why?!'; + LAST { } + } + + $offset += 9; +} + +.join.put for @display; -- cgit