diff options
| author | Ryan Thompson <i@ry.ca> | 2020-02-01 06:15:48 -0600 |
|---|---|---|
| committer | Ryan Thompson <i@ry.ca> | 2020-02-01 06:15:48 -0600 |
| commit | 93679b5260f7bc57e52e76bef37399d2204e6385 (patch) | |
| tree | a3c509381124af30776444f3a3f9c8f579ef6bd4 /challenge-045 | |
| parent | d094e986802beac5ebd557008a31d8a8032093b5 (diff) | |
| download | perlweeklychallenge-club-93679b5260f7bc57e52e76bef37399d2204e6385.tar.gz perlweeklychallenge-club-93679b5260f7bc57e52e76bef37399d2204e6385.tar.bz2 perlweeklychallenge-club-93679b5260f7bc57e52e76bef37399d2204e6385.zip | |
rjt's Week #045 solutions and blogs
Diffstat (limited to 'challenge-045')
| -rw-r--r-- | challenge-045/ryan-thompson/README | 1 | ||||
| -rw-r--r-- | challenge-045/ryan-thompson/README.md | 23 | ||||
| -rw-r--r-- | challenge-045/ryan-thompson/blog.txt | 1 | ||||
| -rw-r--r-- | challenge-045/ryan-thompson/blog1.txt | 1 | ||||
| -rw-r--r-- | challenge-045/ryan-thompson/perl/ch-1.pl | 25 | ||||
| -rw-r--r-- | challenge-045/ryan-thompson/perl/ch-2.pl | 8 | ||||
| -rw-r--r-- | challenge-045/ryan-thompson/perl/ch-2a.pl | 0 | ||||
| -rw-r--r-- | challenge-045/ryan-thompson/perl/ch-2b.pl | 20 | ||||
| -rw-r--r-- | challenge-045/ryan-thompson/raku/ch-1.p6 | 18 | ||||
| -rw-r--r-- | challenge-045/ryan-thompson/raku/ch-2.p6 | 7 | ||||
| -rw-r--r-- | challenge-045/ryan-thompson/raku/ch-2a.p6 | 1 |
11 files changed, 104 insertions, 1 deletions
diff --git a/challenge-045/ryan-thompson/README b/challenge-045/ryan-thompson/README deleted file mode 100644 index 53b1e7cfa0..0000000000 --- a/challenge-045/ryan-thompson/README +++ /dev/null @@ -1 +0,0 @@ -Solutions by Ryan Thompson. diff --git a/challenge-045/ryan-thompson/README.md b/challenge-045/ryan-thompson/README.md new file mode 100644 index 0000000000..e9331e27a2 --- /dev/null +++ b/challenge-045/ryan-thompson/README.md @@ -0,0 +1,23 @@ +# Ryan Thompson + +## Solution links: + +### Square Secret Code + + * [Perl](perl/ch-1.pl) + * [Raku](raku/ch-1.p6) + +### Quine + + * [Perl Cheaty](perl/ch-2.pl) + * [Perl Trivial](perl/ch-2a.pl) + * [Perl Colorful](perl/ch-2b.pl) + * [Raku Cheaty](raku/ch-2.p6) + * [Raku Quine](raku/ch-2a.p6) + +## Blogs + +Two blog posts this week: + + * [Square Secret Code](http://www.ry.ca/2020/01/square-secret-code/) + * [Quine](http://www.ry.ca/2020/02/quine/) diff --git a/challenge-045/ryan-thompson/blog.txt b/challenge-045/ryan-thompson/blog.txt new file mode 100644 index 0000000000..42be1e7b97 --- /dev/null +++ b/challenge-045/ryan-thompson/blog.txt @@ -0,0 +1 @@ +http://www.ry.ca/2020/01/square-secret-code/ diff --git a/challenge-045/ryan-thompson/blog1.txt b/challenge-045/ryan-thompson/blog1.txt new file mode 100644 index 0000000000..3aae9ee690 --- /dev/null +++ b/challenge-045/ryan-thompson/blog1.txt @@ -0,0 +1 @@ +http://www.ry.ca/2020/02/quine/ diff --git a/challenge-045/ryan-thompson/perl/ch-1.pl b/challenge-045/ryan-thompson/perl/ch-1.pl new file mode 100644 index 0000000000..695f96340b --- /dev/null +++ b/challenge-045/ryan-thompson/perl/ch-1.pl @@ -0,0 +1,25 @@ +#!/usr/bin/env perl +# +# ch-1.pl - Square secret code +# +# Ryan Thompson <rjt@cpan.org> + +use 5.010; +use warnings; +use strict; + +use constant COLUMNS => 8; + +my $plaintext = 'The quick brown fox jumps over the lazy dog'; + +say encode($ARGV[0] // $plaintext); + +sub encode { + local $_ = lc shift; + s/\s//g; + my ($i, @s); + + map { $s[$i++ % COLUMNS] .= $_ } split ''; + + join ' ', @s; +} diff --git a/challenge-045/ryan-thompson/perl/ch-2.pl b/challenge-045/ryan-thompson/perl/ch-2.pl new file mode 100644 index 0000000000..9d7534c8e5 --- /dev/null +++ b/challenge-045/ryan-thompson/perl/ch-2.pl @@ -0,0 +1,8 @@ +#!/usr/bin/env perl +# +# ch-2.pl - Cheaty quine, but passes the challenge test +# +# Ryan Thompson <rjt@cpan.org> + +open my $fh, '<', __FILE__; # Or $0 +print do { undef $/; <$fh> }; diff --git a/challenge-045/ryan-thompson/perl/ch-2a.pl b/challenge-045/ryan-thompson/perl/ch-2a.pl new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/challenge-045/ryan-thompson/perl/ch-2a.pl diff --git a/challenge-045/ryan-thompson/perl/ch-2b.pl b/challenge-045/ryan-thompson/perl/ch-2b.pl new file mode 100644 index 0000000000..58bdb7df1d --- /dev/null +++ b/challenge-045/ryan-thompson/perl/ch-2b.pl @@ -0,0 +1,20 @@ +$_=q<" +[0m +[9C[31m,#######.[37m[8C[31m,#######. +[37m[6C[31m,#####[1m####[0;31m####.[37m [31m,#####[1m###[0;31m#####. +[37m[5C[31m,##########[1m##[0;31m###.,###[1m########[0;31m####. +[37m [31m,####################[1m###[0;31m###[1m#####[0;31m###. +[37m [31m#####[1;33m##[37m##[0;31m###[1;33m###[37m##[0;31m##[1;33m##[37m##[0;31m###[1;37m##[31m####[0;31m#### +[37m [31m####:[1;33m##[0;31m:[1;37m##[0;31m#:[1;33m##[0;31m::##:[1;33m##[0;31m:[1;37m##[0;31m#:[1;33m#[37m#[0;31m#[1m####[0;31m### +[37m [31m####:[1;33m####[0;31m##:[1;33m##[37m#[0;31m###:[1;33m####[0;31m##:[1;33m##[0;31m#[1m####[0;31m### +[37m [31m`###:[1;33m##[0;31m:###:[1;33m##[0;31m####:[1;33m##[0;31m:[1;33m#[37m#[0;31m#:[1;33m##[31m####[0;31m###' +[37m[5C[31m`##:[1;33m##[0;31m####:[1;33m###[37m##[0;31m#:[1;33m##[0;31m:[1;33m##[0;31m#:[1;33m###[37m##[0;31m###' +[37m[7C[31m`::#####:::::##::#::##::::::##' +[37m[8C[31m`####################[1m###[0;31m####' +[37m[10C[31m##################[1m##[0;31m####' +[37m[11C[31m`##############[1m##[0;31m####' +[37m[7C[31m [37m [31m [1;33m [0;31m`##############' +[37m[8C[31m [37m [31m [1;33m [0;31m `########' +[37m[10C[31m[7C[1;33m [0;31m `##' [1;33m [30m=[0;34m[[1mr[0;36mj[1mt[37m2[36m0[0;36m2[1;34m0[0;34m][1;30m= +[0m[13C[1;31m[8C[0;31m`'[0m +";print"\$_=q<$_>;eval\n">;eval diff --git a/challenge-045/ryan-thompson/raku/ch-1.p6 b/challenge-045/ryan-thompson/raku/ch-1.p6 new file mode 100644 index 0000000000..ca65f7caa8 --- /dev/null +++ b/challenge-045/ryan-thompson/raku/ch-1.p6 @@ -0,0 +1,18 @@ +#!/usr/bin/env perl6 + +# ch-1.p6 - Square code +# +# Ryan Thompson <rjt@cpan.org> + +sub MAIN( Str $plaintext = 'The quick brown fox jumps over the lazy dog' ) { + say encode($plaintext, 8); +} + +#| Encode plaintext according to the Square Secret Code definition +# $width is by default chosen to give a "square" result +sub encode( Str $plain, Int $width = $plain.chars.sqrt.Int ) { + my @s; + $plain.lc.subst(/\s/,'',:g).comb.kv.map: { @s[$^i % $width] ~= $^str }; + + @s.join(' ') +} diff --git a/challenge-045/ryan-thompson/raku/ch-2.p6 b/challenge-045/ryan-thompson/raku/ch-2.p6 new file mode 100644 index 0000000000..f796b94ee4 --- /dev/null +++ b/challenge-045/ryan-thompson/raku/ch-2.p6 @@ -0,0 +1,7 @@ +#!/usr/bin/env perl6 + +# ch-2.p6 - Not a quine +# +# Ryan Thompson <rjt@cpan.org> + +$*PROGRAM.linesĀ».say diff --git a/challenge-045/ryan-thompson/raku/ch-2a.p6 b/challenge-045/ryan-thompson/raku/ch-2a.p6 new file mode 100644 index 0000000000..4b74792751 --- /dev/null +++ b/challenge-045/ryan-thompson/raku/ch-2a.p6 @@ -0,0 +1 @@ +{.printf($_)}(<{.printf($_)}(<%s>)>)
\ No newline at end of file |
