From c9a0b3d6528e11123902e79065d025a523a6fb28 Mon Sep 17 00:00:00 2001 From: Roger Bell_West Date: Mon, 16 Mar 2020 17:44:49 +0000 Subject: Solutions for challenge #52. Thanks for all your work on this! --- challenge-052/roger-bell-west/perl5/ch-1.pl | 24 ++++++++++++++++++++++++ challenge-052/roger-bell-west/perl5/ch-2.pl | 27 +++++++++++++++++++++++++++ challenge-052/roger-bell-west/perl6/ch-1.p6 | 17 +++++++++++++++++ challenge-052/roger-bell-west/perl6/ch-2.p6 | 24 ++++++++++++++++++++++++ 4 files changed, 92 insertions(+) create mode 100755 challenge-052/roger-bell-west/perl5/ch-1.pl create mode 100755 challenge-052/roger-bell-west/perl5/ch-2.pl create mode 100755 challenge-052/roger-bell-west/perl6/ch-1.p6 create mode 100755 challenge-052/roger-bell-west/perl6/ch-2.p6 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"; +} -- cgit From e1f1cb6b96eaa98bf2e05afb5b8f22966dda6a99 Mon Sep 17 00:00:00 2001 From: Roger Bell_West Date: Mon, 16 Mar 2020 18:22:09 +0000 Subject: 52 part 2 update --- challenge-052/roger-bell-west/perl5/ch-2.pl | 4 ++-- challenge-052/roger-bell-west/perl6/ch-2.p6 | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/challenge-052/roger-bell-west/perl5/ch-2.pl b/challenge-052/roger-bell-west/perl5/ch-2.pl index 9054cc37a3..fb5f7a81eb 100755 --- a/challenge-052/roger-bell-west/perl5/ch-2.pl +++ b/challenge-052/roger-bell-west/perl5/ch-2.pl @@ -9,12 +9,12 @@ my $coins=8; foreach my $a (0..$coins-1) { my @c=($a,$coins-1-$a); - while ($c[0]>2 || $c[1]>2) { + 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) { + while (($c[0]>1 || $c[1]>1) && $c[0]>0 && $c[1]>0) { @c=sort @c; $c[1]--; $toplay=1-$toplay; diff --git a/challenge-052/roger-bell-west/perl6/ch-2.p6 b/challenge-052/roger-bell-west/perl6/ch-2.p6 index ed8114d681..42776c898c 100755 --- a/challenge-052/roger-bell-west/perl6/ch-2.p6 +++ b/challenge-052/roger-bell-west/perl6/ch-2.p6 @@ -6,12 +6,12 @@ my $coins=8; for (0..$coins-1) -> $a { my @c=($a,$coins-1-$a); - while (@c[0]>2 || @c[1]>2) { + 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) { + while ((@c[0]>1 || @c[1]>1) && @c[0]>0 && @c[1]>0) { @c=sort @c; @c[1]--; $toplay=1-$toplay; -- cgit