aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author冯昶 <fengchang@novel-supertv.com>2023-01-17 10:04:44 +0800
committer冯昶 <fengchang@novel-supertv.com>2023-01-17 10:04:44 +0800
commitde8820341c75c44bfa1b66dcaccbd9116681067e (patch)
tree6170004c54c84a7f96f1ef56ccb106fbf540d946
parent952f98a3d4e479992cd18e544ebb441a952f7159 (diff)
downloadperlweeklychallenge-club-de8820341c75c44bfa1b66dcaccbd9116681067e.tar.gz
perlweeklychallenge-club-de8820341c75c44bfa1b66dcaccbd9116681067e.tar.bz2
perlweeklychallenge-club-de8820341c75c44bfa1b66dcaccbd9116681067e.zip
challenge 200, raku solutions
-rwxr-xr-xchallenge-200/feng-chang/raku/ch-1.raku8
-rwxr-xr-xchallenge-200/feng-chang/raku/ch-2.raku32
2 files changed, 40 insertions, 0 deletions
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 = <abcdef bc abdeg abcdg bcfg acdfg acdefg abc abcdefg abcfg>;
+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;