aboutsummaryrefslogtreecommitdiff
path: root/challenge-038
diff options
context:
space:
mode:
authorDaniel Mita <mienaikage@gmail.com>2019-12-14 23:48:43 +0000
committerDaniel Mita <mienaikage@gmail.com>2019-12-14 23:49:37 +0000
commitb2da8f13e1faaedfb3a704d5686c5c813f3cfed4 (patch)
tree0aa67c12153679e81f8d897412183498812d62cb /challenge-038
parentfb0b09f4d9566ac97de27e58a964030a7336df89 (diff)
downloadperlweeklychallenge-club-b2da8f13e1faaedfb3a704d5686c5c813f3cfed4.tar.gz
perlweeklychallenge-club-b2da8f13e1faaedfb3a704d5686c5c813f3cfed4.tar.bz2
perlweeklychallenge-club-b2da8f13e1faaedfb3a704d5686c5c813f3cfed4.zip
Tweaks and documentation
Diffstat (limited to 'challenge-038')
-rwxr-xr-xchallenge-038/daniel-mita/perl6/ch-1.p62
-rwxr-xr-xchallenge-038/daniel-mita/perl6/ch-2.p619
2 files changed, 15 insertions, 6 deletions
diff --git a/challenge-038/daniel-mita/perl6/ch-1.p6 b/challenge-038/daniel-mita/perl6/ch-1.p6
index 9dcb6fd80c..8b8524b202 100755
--- a/challenge-038/daniel-mita/perl6/ch-1.p6
+++ b/challenge-038/daniel-mita/perl6/ch-1.p6
@@ -8,7 +8,7 @@ my token date-number {
}
sub MAIN(
- $number where * ~~ &date-number,
+ $number where * ~~ &date-number, #= 7 digit number starting with 1 or 2 followed by YYMMDD
--> Nil
) {
given $0[0] {
diff --git a/challenge-038/daniel-mita/perl6/ch-2.p6 b/challenge-038/daniel-mita/perl6/ch-2.p6
index 1e0654e4f7..4fc759580e 100755
--- a/challenge-038/daniel-mita/perl6/ch-2.p6
+++ b/challenge-038/daniel-mita/perl6/ch-2.p6
@@ -19,18 +19,27 @@ constant %tiles = (
:5Y, :5Z,
).Bag;
-sub MAIN (--> Nil) {
- given %tiles.pick(7).Bag -> %picked {
+#| Find the highest scoring SOWPODS word for a given number of tiles
+sub MAIN (
+ Int $amount where * > 0 = 7, #= Number of tiles to pick (default: 7)
+ --> Nil
+) {
+ given %tiles.pick($amount).Bag -> %picked {
"Tiles: %picked.kxxv.join()".say;
# source: https://www.wordgamedictionary.com/sowpods/download/sowpods.txt
"Winner: $_.key() for $_.value()".say with
$?FILE.IO.parent.add('sowpods.txt').slurp.uc.words
- .grep({ .chars ≤ %picked.elems && .comb ⊆ %picked })
+ .grep({ .chars ≤ $amount && .comb ⊆ %picked })
.map(sub {
given $^a => $a.comb.map({ %values{$_} }).sum {
- .say;
+ sprintf("%-{$amount}s: %u", |.kv).say;
.return;
}
- }).sort({ $^b.value <=> $^a.value }).first;
+ }).sort({
+ given $^b.value <=> $^a.value {
+ when Same { $a.key.chars <=> $b.key.chars }
+ default { $_ }
+ }
+ }).first;
}
}