aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad S Anwar <Mohammad.Anwar@yahoo.com>2020-03-16 18:49:11 +0000
committerGitHub <noreply@github.com>2020-03-16 18:49:11 +0000
commit8ec4ecdaeeb1fe02af8e719ae2e3989e8944e4ec (patch)
tree0b2e676c885ee60e054eeb20e06a983c4bdc27bb
parent54bb2752899558587efb05c83d7bd5a6a307d8aa (diff)
parente1f1cb6b96eaa98bf2e05afb5b8f22966dda6a99 (diff)
downloadperlweeklychallenge-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-xchallenge-052/roger-bell-west/perl5/ch-1.pl24
-rwxr-xr-xchallenge-052/roger-bell-west/perl5/ch-2.pl27
-rwxr-xr-xchallenge-052/roger-bell-west/perl6/ch-1.p617
-rwxr-xr-xchallenge-052/roger-bell-west/perl6/ch-2.p624
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";
+}