diff options
| author | Daniel Mita <mienaikage@gmail.com> | 2019-12-14 23:48:43 +0000 |
|---|---|---|
| committer | Daniel Mita <mienaikage@gmail.com> | 2019-12-14 23:49:37 +0000 |
| commit | b2da8f13e1faaedfb3a704d5686c5c813f3cfed4 (patch) | |
| tree | 0aa67c12153679e81f8d897412183498812d62cb /challenge-038 | |
| parent | fb0b09f4d9566ac97de27e58a964030a7336df89 (diff) | |
| download | perlweeklychallenge-club-b2da8f13e1faaedfb3a704d5686c5c813f3cfed4.tar.gz perlweeklychallenge-club-b2da8f13e1faaedfb3a704d5686c5c813f3cfed4.tar.bz2 perlweeklychallenge-club-b2da8f13e1faaedfb3a704d5686c5c813f3cfed4.zip | |
Tweaks and documentation
Diffstat (limited to 'challenge-038')
| -rwxr-xr-x | challenge-038/daniel-mita/perl6/ch-1.p6 | 2 | ||||
| -rwxr-xr-x | challenge-038/daniel-mita/perl6/ch-2.p6 | 19 |
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; } } |
