aboutsummaryrefslogtreecommitdiff
path: root/challenge-104
diff options
context:
space:
mode:
authorMohammad S Anwar <Mohammad.Anwar@yahoo.com>2021-03-21 19:34:44 +0100
committerGitHub <noreply@github.com>2021-03-21 19:34:44 +0100
commit50277ef1984cbfa8c244bd2cad3ddd655ecf74c8 (patch)
tree5cbafe2448762856ccf58ac074b4dff07d77c7e1 /challenge-104
parent188183b3cff6b5788e1ef32af813b411577c7bce (diff)
parent9cb9cddd772606e62279775a372840fc1fb8bb98 (diff)
downloadperlweeklychallenge-club-50277ef1984cbfa8c244bd2cad3ddd655ecf74c8.tar.gz
perlweeklychallenge-club-50277ef1984cbfa8c244bd2cad3ddd655ecf74c8.tar.bz2
perlweeklychallenge-club-50277ef1984cbfa8c244bd2cad3ddd655ecf74c8.zip
Merge pull request #3752 from arnesom/branch-for-challenge-104
Arne Sommer
Diffstat (limited to 'challenge-104')
-rw-r--r--challenge-104/arne-sommer/blog.txt1
-rwxr-xr-xchallenge-104/arne-sommer/raku/ch-1.raku19
-rwxr-xr-xchallenge-104/arne-sommer/raku/ch-2.raku34
-rwxr-xr-xchallenge-104/arne-sommer/raku/fusc-seq19
-rwxr-xr-xchallenge-104/arne-sommer/raku/nim-game34
5 files changed, 107 insertions, 0 deletions
diff --git a/challenge-104/arne-sommer/blog.txt b/challenge-104/arne-sommer/blog.txt
new file mode 100644
index 0000000000..20f0d32ad8
--- /dev/null
+++ b/challenge-104/arne-sommer/blog.txt
@@ -0,0 +1 @@
+https://raku-musings.com/nimbly-fuscous.html
diff --git a/challenge-104/arne-sommer/raku/ch-1.raku b/challenge-104/arne-sommer/raku/ch-1.raku
new file mode 100755
index 0000000000..e8639c698f
--- /dev/null
+++ b/challenge-104/arne-sommer/raku/ch-1.raku
@@ -0,0 +1,19 @@
+#! /usr/bin/env raku
+
+unit sub MAIN ($limit = 50);
+
+my $fusc := gather
+{
+ take 0;
+ take 1;
+ my $index = 1;
+ loop
+ {
+ $index++;
+ take $fusc[$index / 2];
+ $index++;
+ take $fusc[($index - 1)/2] + $fusc[($index +1)/2];
+ }
+}
+
+say $fusc[^$limit].join(", ");
diff --git a/challenge-104/arne-sommer/raku/ch-2.raku b/challenge-104/arne-sommer/raku/ch-2.raku
new file mode 100755
index 0000000000..940b0e1bd9
--- /dev/null
+++ b/challenge-104/arne-sommer/raku/ch-2.raku
@@ -0,0 +1,34 @@
+#! /usr/bin/env raku
+
+unit sub MAIN;
+
+my $tokens = 12;
+
+loop
+{
+ say "Remaining tokens: $tokens";
+
+ my $count = prompt "How many tokens do you want (1,2,3): ";
+
+ die unless $count == any(1,2,3);
+
+ $tokens -= $count;
+
+ if $tokens <= 0
+ {
+ say "You won!";
+ last;
+ }
+
+ say "Remaining tokens: $tokens";
+
+ $count = $tokens <= 3 ?? $tokens !! (1,2,3).pick;
+ say "Machine picked $count tokens";
+ $tokens -= $count;
+
+ if $tokens <= 0
+ {
+ say "The Machine won!";
+ last;
+ }
+}
diff --git a/challenge-104/arne-sommer/raku/fusc-seq b/challenge-104/arne-sommer/raku/fusc-seq
new file mode 100755
index 0000000000..e8639c698f
--- /dev/null
+++ b/challenge-104/arne-sommer/raku/fusc-seq
@@ -0,0 +1,19 @@
+#! /usr/bin/env raku
+
+unit sub MAIN ($limit = 50);
+
+my $fusc := gather
+{
+ take 0;
+ take 1;
+ my $index = 1;
+ loop
+ {
+ $index++;
+ take $fusc[$index / 2];
+ $index++;
+ take $fusc[($index - 1)/2] + $fusc[($index +1)/2];
+ }
+}
+
+say $fusc[^$limit].join(", ");
diff --git a/challenge-104/arne-sommer/raku/nim-game b/challenge-104/arne-sommer/raku/nim-game
new file mode 100755
index 0000000000..940b0e1bd9
--- /dev/null
+++ b/challenge-104/arne-sommer/raku/nim-game
@@ -0,0 +1,34 @@
+#! /usr/bin/env raku
+
+unit sub MAIN;
+
+my $tokens = 12;
+
+loop
+{
+ say "Remaining tokens: $tokens";
+
+ my $count = prompt "How many tokens do you want (1,2,3): ";
+
+ die unless $count == any(1,2,3);
+
+ $tokens -= $count;
+
+ if $tokens <= 0
+ {
+ say "You won!";
+ last;
+ }
+
+ say "Remaining tokens: $tokens";
+
+ $count = $tokens <= 3 ?? $tokens !! (1,2,3).pick;
+ say "Machine picked $count tokens";
+ $tokens -= $count;
+
+ if $tokens <= 0
+ {
+ say "The Machine won!";
+ last;
+ }
+}