diff options
| -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"; +} |
