diff options
| author | Roger Bell_West <roger@firedrake.org> | 2020-03-16 17:44:49 +0000 |
|---|---|---|
| committer | Roger Bell_West <roger@firedrake.org> | 2020-03-16 17:44:49 +0000 |
| commit | c9a0b3d6528e11123902e79065d025a523a6fb28 (patch) | |
| tree | ed4c77a752390f7d5177825bee9753985e198341 | |
| parent | 388e2c7190fd7a065486b65f203531c0c31fd5e6 (diff) | |
| download | perlweeklychallenge-club-c9a0b3d6528e11123902e79065d025a523a6fb28.tar.gz perlweeklychallenge-club-c9a0b3d6528e11123902e79065d025a523a6fb28.tar.bz2 perlweeklychallenge-club-c9a0b3d6528e11123902e79065d025a523a6fb28.zip | |
Solutions for challenge #52.
Thanks for all your work on this!
| -rwxr-xr-x | challenge-052/roger-bell-west/perl5/ch-1.pl | 24 | ||||
| -rwxr-xr-x | challenge-052/roger-bell-west/perl5/ch-2.pl | 27 | ||||
| -rwxr-xr-x | challenge-052/roger-bell-west/perl6/ch-1.p6 | 17 | ||||
| -rwxr-xr-x | challenge-052/roger-bell-west/perl6/ch-2.p6 | 24 |
4 files changed, 92 insertions, 0 deletions
diff --git a/challenge-052/roger-bell-west/perl5/ch-1.pl b/challenge-052/roger-bell-west/perl5/ch-1.pl new file mode 100755 index 0000000000..61208e9488 --- /dev/null +++ b/challenge-052/roger-bell-west/perl5/ch-1.pl @@ -0,0 +1,24 @@ +#! /usr/bin/perl + +use strict; +use warnings; + +my @a=@ARGV; + +if ($a[0]>$a[1]) { + @a=($a[1],$a[0]); +} + +foreach my $c ($a[0]..$a[1]) { + my @d=split '',$c; + my $v=1; + foreach my $i (0..$#d-1) { + if ($d[$i]+1 != $d[$i+1]) { + $v=0; + last; + } + } + if ($v) { + print "$c\n"; + } +} diff --git a/challenge-052/roger-bell-west/perl5/ch-2.pl b/challenge-052/roger-bell-west/perl5/ch-2.pl new file mode 100755 index 0000000000..9054cc37a3 --- /dev/null +++ b/challenge-052/roger-bell-west/perl5/ch-2.pl @@ -0,0 +1,27 @@ +#! /usr/bin/perl + +# see eventual blog post for why this is relevant + +use strict; +use warnings; + +my $coins=8; + +foreach my $a (0..$coins-1) { + my @c=($a,$coins-1-$a); + while ($c[0]>2 || $c[1]>2) { + @c=sort @c; + $c[1]-=2; + } + my $toplay=0; + while ($c[0]>1 || $c[1]>1) { + @c=sort @c; + $c[1]--; + $toplay=1-$toplay; + } + @c=sort @c; + unless ($c[0]==0) { + $toplay=1-$toplay; + } + print "$a: $toplay wins\n"; +} diff --git a/challenge-052/roger-bell-west/perl6/ch-1.p6 b/challenge-052/roger-bell-west/perl6/ch-1.p6 new file mode 100755 index 0000000000..b5ee8d87ac --- /dev/null +++ b/challenge-052/roger-bell-west/perl6/ch-1.p6 @@ -0,0 +1,17 @@ +#! /usr/bin/perl6 + +my @a=@*ARGS; + +for min(@*ARGS)..max(@*ARGS) -> $c { + my @d=$c.comb(/./); + my $v=1; + for 0..@d.end-1 -> $i { + if (@d[$i]+1 != @d[$i+1]) { + $v=0; + last; + } + } + if ($v) { + say $c; + } +} diff --git a/challenge-052/roger-bell-west/perl6/ch-2.p6 b/challenge-052/roger-bell-west/perl6/ch-2.p6 new file mode 100755 index 0000000000..ed8114d681 --- /dev/null +++ b/challenge-052/roger-bell-west/perl6/ch-2.p6 @@ -0,0 +1,24 @@ +#! /usr/bin/perl6 + +# see eventual blog post for why this is relevant + +my $coins=8; + +for (0..$coins-1) -> $a { + my @c=($a,$coins-1-$a); + while (@c[0]>2 || @c[1]>2) { + @c=sort @c; + @c[1]-=2; + } + my $toplay=0; + while (@c[0]>1 || @c[1]>1) { + @c=sort @c; + @c[1]--; + $toplay=1-$toplay; + } + @c=sort @c; + unless (@c[0]==0) { + $toplay=1-$toplay; + } + say "$a left: player $toplay wins"; +} |
