diff options
| author | Mohammad S Anwar <Mohammad.Anwar@yahoo.com> | 2020-03-16 18:49:11 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-03-16 18:49:11 +0000 |
| commit | 8ec4ecdaeeb1fe02af8e719ae2e3989e8944e4ec (patch) | |
| tree | 0b2e676c885ee60e054eeb20e06a983c4bdc27bb | |
| parent | 54bb2752899558587efb05c83d7bd5a6a307d8aa (diff) | |
| parent | e1f1cb6b96eaa98bf2e05afb5b8f22966dda6a99 (diff) | |
| download | perlweeklychallenge-club-8ec4ecdaeeb1fe02af8e719ae2e3989e8944e4ec.tar.gz perlweeklychallenge-club-8ec4ecdaeeb1fe02af8e719ae2e3989e8944e4ec.tar.bz2 perlweeklychallenge-club-8ec4ecdaeeb1fe02af8e719ae2e3989e8944e4ec.zip | |
Merge pull request #1418 from Firedrake/rogerbw-challenge-052
Rogerbw challenge 052
| -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..fb5f7a81eb --- /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[0]>0 && $c[1]>0) { + @c=sort @c; + $c[1]-=2; + } + my $toplay=0; + while (($c[0]>1 || $c[1]>1) && $c[0]>0 && $c[1]>0) { + @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..42776c898c --- /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[0]>0 && @c[1]>0) { + @c=sort @c; + @c[1]-=2; + } + my $toplay=0; + while ((@c[0]>1 || @c[1]>1) && @c[0]>0 && @c[1]>0) { + @c=sort @c; + @c[1]--; + $toplay=1-$toplay; + } + @c=sort @c; + unless (@c[0]==0) { + $toplay=1-$toplay; + } + say "$a left: player $toplay wins"; +} |
