diff options
| author | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2019-07-01 18:54:42 +0100 |
|---|---|---|
| committer | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2019-07-01 18:54:42 +0100 |
| commit | a04d318e2d8dbaf47dbbf5a77592b57f077699e8 (patch) | |
| tree | 35c71727c5cacf88e01c0ff2c513578ecee93176 | |
| parent | a3300e38c96736d731829259bc97eef7770b89b1 (diff) | |
| download | perlweeklychallenge-club-a04d318e2d8dbaf47dbbf5a77592b57f077699e8.tar.gz perlweeklychallenge-club-a04d318e2d8dbaf47dbbf5a77592b57f077699e8.tar.bz2 perlweeklychallenge-club-a04d318e2d8dbaf47dbbf5a77592b57f077699e8.zip | |
- Added solution by Duane Powell.
| -rw-r--r-- | challenge-015/duane-powell/perl5/ch-2.pl | 44 | ||||
| -rw-r--r-- | stats/pwc-current.json | 111 | ||||
| -rw-r--r-- | stats/pwc-language-breakdown-summary.json | 40 | ||||
| -rw-r--r-- | stats/pwc-language-breakdown.json | 156 | ||||
| -rw-r--r-- | stats/pwc-leaders.json | 508 | ||||
| -rw-r--r-- | stats/pwc-summary-1-30.json | 106 | ||||
| -rw-r--r-- | stats/pwc-summary-31-60.json | 42 | ||||
| -rw-r--r-- | stats/pwc-summary-61-90.json | 48 | ||||
| -rw-r--r-- | stats/pwc-summary-91-120.json | 66 | ||||
| -rw-r--r-- | stats/pwc-summary.json | 30 |
10 files changed, 605 insertions, 546 deletions
diff --git a/challenge-015/duane-powell/perl5/ch-2.pl b/challenge-015/duane-powell/perl5/ch-2.pl new file mode 100644 index 0000000000..a169d5816d --- /dev/null +++ b/challenge-015/duane-powell/perl5/ch-2.pl @@ -0,0 +1,44 @@ +#!/usr/bin/perl +use Modern::Perl; + +#https://perlweeklychallenge.org/blog/perl-weekly-challenge-015/ +#Write a script to implement Vigenère cipher. The script should be able encode and decode. +#Checkout wiki page https://en.wikipedia.org/wiki/Vigen%C3%A8re_cipher for more information. +# +#Make it easy for the next coder to modify, just translate the wiki formula into perl +#encryption +#Ci = Mi + Ki mod 26 +#decryption +#Mi = Ci - Ki mod 26 + +my $text = shift || "ATTACKATDAWN"; +my $key = shift || "LEMON"; +my $encrypt = shift; +$encrypt = (defined $encrypt) ? -1 : 1; #default to encrypt mode + +my @m = split(//,$text); +my @k = split(//,$key); +my $OFFSET = 65; #offset index by 65, the ASCII value of A, in effect creating the tabula recta + +my $out; +my $i = 0; +foreach my $m (@m) { + my $k = $k[$i]; + $i = ($i < @k-1) ? $i+1 : 0; #repeat key chars if key is shorter than the input text + my $c = (unpack("C*",$m) + $encrypt * unpack("C*",$k)) % 26; #we add if encrypt, subtract if decrypt + $out .= pack("C*", $c+$OFFSET) ; +} +say $out; + +__END__ + +./ch2.pl ATTACKATDAWN LEMON +LXFOPVEFRNHR +./ch2.pl LXFOPVEFRNHR LEMON 1 +ATTACKATDAWN + +./ch2.pl THESECRETCODISHELLOWORLD PASSPHRASEISPERLRULESTHEDAY +IHWKTJIELGWVXWYPCFZAGKSH +./ch2.pl IHWKTJIELGWVXWYPCFZAGKSH PASSPHRASEISPERLRULESTHEDAY 1 +THESECRETCODISHELLOWORLD + diff --git a/stats/pwc-current.json b/stats/pwc-current.json index ad2e7a562a..a7955e1440 100644 --- a/stats/pwc-current.json +++ b/stats/pwc-current.json @@ -1,44 +1,24 @@ { - "yAxis" : { - "title" : { - "text" : "Total Solutions" - } + "xAxis" : { + "type" : "category" + }, + "chart" : { + "type" : "column" + }, + "title" : { + "text" : "Perl Weekly Challenge - 015" }, - "series" : [ - { - "data" : [ - { - "y" : 3, - "name" : "Dave Jacoby", - "drilldown" : "Dave Jacoby" - }, - { - "name" : "Roger Bell West", - "drilldown" : "Roger Bell West", - "y" : 2 - }, - { - "y" : 2, - "name" : "Walt Mankowski", - "drilldown" : "Walt Mankowski" - } - ], - "name" : "Perl Weekly Challenge - 015", - "colorByPoint" : 1 - } - ], "tooltip" : { - "pointFormat" : "<span style='color:{point.color}'>{point.name}</span>: <b>{point.y:f}</b><br/>", "headerFormat" : "<span style='font-size:11px'>{series.name}</span><br/>", - "followPointer" : 1 + "followPointer" : 1, + "pointFormat" : "<span style='color:{point.color}'>{point.name}</span>: <b>{point.y:f}</b><br/>" }, - "chart" : { - "type" : "column" + "legend" : { + "enabled" : 0 }, "drilldown" : { "series" : [ { - "id" : "Dave Jacoby", "data" : [ [ "Perl 5", @@ -49,7 +29,18 @@ 1 ] ], - "name" : "Dave Jacoby" + "name" : "Dave Jacoby", + "id" : "Dave Jacoby" + }, + { + "data" : [ + [ + "Perl 5", + 1 + ] + ], + "name" : "Duane Powell", + "id" : "Duane Powell" }, { "data" : [ @@ -63,35 +54,59 @@ }, { "name" : "Walt Mankowski", + "id" : "Walt Mankowski", "data" : [ [ "Perl 5", 2 ] - ], - "id" : "Walt Mankowski" + ] } ] }, - "xAxis" : { - "type" : "category" - }, - "subtitle" : { - "text" : "[Champions: 3] Last updated at 2019-07-01 17:50:16 GMT" - }, - "legend" : { - "enabled" : 0 - }, + "series" : [ + { + "colorByPoint" : 1, + "data" : [ + { + "y" : 3, + "drilldown" : "Dave Jacoby", + "name" : "Dave Jacoby" + }, + { + "drilldown" : "Duane Powell", + "name" : "Duane Powell", + "y" : 1 + }, + { + "y" : 2, + "name" : "Roger Bell West", + "drilldown" : "Roger Bell West" + }, + { + "name" : "Walt Mankowski", + "drilldown" : "Walt Mankowski", + "y" : 2 + } + ], + "name" : "Perl Weekly Challenge - 015" + } + ], "plotOptions" : { "series" : { "borderWidth" : 0, "dataLabels" : { - "format" : "{point.y}", - "enabled" : 1 + "enabled" : 1, + "format" : "{point.y}" } } }, - "title" : { - "text" : "Perl Weekly Challenge - 015" + "subtitle" : { + "text" : "[Champions: 4] Last updated at 2019-07-01 17:54:19 GMT" + }, + "yAxis" : { + "title" : { + "text" : "Total Solutions" + } } } diff --git a/stats/pwc-language-breakdown-summary.json b/stats/pwc-language-breakdown-summary.json index e1b93b7359..a84435281c 100644 --- a/stats/pwc-language-breakdown-summary.json +++ b/stats/pwc-language-breakdown-summary.json @@ -1,22 +1,19 @@ { "xAxis" : { - "type" : "category", "labels" : { "style" : { - "fontSize" : "13px", - "fontFamily" : "Verdana, sans-serif" + "fontFamily" : "Verdana, sans-serif", + "fontSize" : "13px" } - } + }, + "type" : "category" }, - "legend" : { - "enabled" : "false" + "chart" : { + "type" : "column" }, "tooltip" : { "pointFormat" : "<b>{point.y:.0f}</b>" }, - "title" : { - "text" : "Perl Weekly Challenge Contributions - 2019" - }, "series" : [ { "data" : [ @@ -26,30 +23,33 @@ ], [ "Perl 5", - 591 + 592 ], [ "Perl 6", 339 ] ], - "name" : "Contributions", "dataLabels" : { - "align" : "right", "format" : "{point.y:.0f}", "color" : "#FFFFFF", - "rotation" : -90, "style" : { - "fontFamily" : "Verdana, sans-serif", - "fontSize" : "13px" + "fontSize" : "13px", + "fontFamily" : "Verdana, sans-serif" }, + "y" : 10, + "rotation" : -90, "enabled" : "true", - "y" : 10 - } + "align" : "right" + }, + "name" : "Contributions" } ], - "chart" : { - "type" : "column" + "title" : { + "text" : "Perl Weekly Challenge Contributions - 2019" + }, + "legend" : { + "enabled" : "false" }, "yAxis" : { "title" : { @@ -58,6 +58,6 @@ "min" : 0 }, "subtitle" : { - "text" : "Last updated at 2019-07-01 17:50:23 GMT" + "text" : "Last updated at 2019-07-01 17:54:34 GMT" } } diff --git a/stats/pwc-language-breakdown.json b/stats/pwc-language-breakdown.json index 6cbd7957f4..2e4e4f07d6 100644 --- a/stats/pwc-language-breakdown.json +++ b/stats/pwc-language-breakdown.json @@ -1,18 +1,35 @@ { - "title" : { - "text" : "Perl Weekly Challenge Language" - }, "xAxis" : { "type" : "category" }, + "plotOptions" : { + "series" : { + "dataLabels" : { + "enabled" : 1, + "format" : "{point.y}" + }, + "borderWidth" : 0 + } + }, + "subtitle" : { + "text" : "Click the columns to drilldown the language breakdown. Last updated at 2019-07-01 17:54:34 GMT" + }, + "yAxis" : { + "title" : { + "text" : "Total Solutions" + } + }, "legend" : { "enabled" : "false" }, + "title" : { + "text" : "Perl Weekly Challenge Language" + }, "drilldown" : { "series" : [ { - "name" : "001", "id" : "001", + "name" : "001", "data" : [ [ "Perl 5", @@ -29,8 +46,8 @@ ] }, { - "name" : "002", "id" : "002", + "name" : "002", "data" : [ [ "Perl 5", @@ -47,8 +64,8 @@ ] }, { - "name" : "003", "id" : "003", + "name" : "003", "data" : [ [ "Perl 5", @@ -65,7 +82,6 @@ ] }, { - "id" : "004", "data" : [ [ "Perl 5", @@ -80,10 +96,10 @@ 9 ] ], - "name" : "004" + "name" : "004", + "id" : "004" }, { - "id" : "005", "data" : [ [ "Perl 5", @@ -98,6 +114,7 @@ 11 ] ], + "id" : "005", "name" : "005" }, { @@ -119,7 +136,6 @@ ] }, { - "id" : "007", "data" : [ [ "Perl 5", @@ -134,9 +150,12 @@ 8 ] ], - "name" : "007" + "name" : "007", + "id" : "007" }, { + "name" : "008", + "id" : "008", "data" : [ [ "Perl 5", @@ -150,12 +169,9 @@ "Blog", 9 ] - ], - "id" : "008", - "name" : "008" + ] }, { - "id" : "009", "data" : [ [ "Perl 5", @@ -170,11 +186,12 @@ 11 ] ], - "name" : "009" + "name" : "009", + "id" : "009" }, { - "name" : "010", "id" : "010", + "name" : "010", "data" : [ [ "Perl 5", @@ -192,6 +209,7 @@ }, { "id" : "011", + "name" : "011", "data" : [ [ "Perl 5", @@ -205,11 +223,11 @@ "Blog", 8 ] - ], - "name" : "011" + ] }, { "id" : "012", + "name" : "012", "data" : [ [ "Perl 5", @@ -223,11 +241,9 @@ "Blog", 9 ] - ], - "name" : "012" + ] }, { - "name" : "013", "data" : [ [ "Perl 5", @@ -242,9 +258,11 @@ 11 ] ], + "name" : "013", "id" : "013" }, { + "id" : "014", "name" : "014", "data" : [ [ @@ -259,15 +277,13 @@ "Blog", 13 ] - ], - "id" : "014" + ] }, { - "id" : "015", "data" : [ [ "Perl 5", - 6 + 7 ], [ "Perl 6", @@ -278,116 +294,100 @@ 1 ] ], + "id" : "015", "name" : "015" } ] }, "tooltip" : { "headerFormat" : "<span style=\"font-size:11px\"></span>", - "followPointer" : "true", - "pointFormat" : "<span style=\"color:{point.color}\">Challenge {point.name}</span>: <b>{point.y:f}</b><br/>" - }, - "chart" : { - "type" : "column" - }, - "yAxis" : { - "title" : { - "text" : "Total Solutions" - } - }, - "subtitle" : { - "text" : "Click the columns to drilldown the language breakdown. Last updated at 2019-07-01 17:50:23 GMT" + "pointFormat" : "<span style=\"color:{point.color}\">Challenge {point.name}</span>: <b>{point.y:f}</b><br/>", + "followPointer" : "true" }, "series" : [ { - "colorByPoint" : "true", - "name" : "Perl Weekly Challenge Languages", "data" : [ { - "drilldown" : "001", "y" : 123, - "name" : "#001" + "name" : "#001", + "drilldown" : "001" }, { "drilldown" : "002", - "y" : 104, - "name" : "#002" + "name" : "#002", + "y" : 104 }, { - "name" : "#003", + "y" : 66, "drilldown" : "003", - "y" : 66 + "name" : "#003" }, { - "name" : "#004", "y" : 84, - "drilldown" : "004" + "drilldown" : "004", + "name" : "#004" }, { - "name" : "#005", + "y" : 66, "drilldown" : "005", - "y" : 66 + "name" : "#005" }, { "y" : 47, - "drilldown" : "006", - "name" : "#006" + "name" : "#006", + "drilldown" : "006" }, { - "name" : "#007", "y" : 54, - "drilldown" : "007" + "drilldown" : "007", + "name" : "#007" }, { - "y" : 67, "drilldown" : "008", - "name" : "#008" + "name" : "#008", + "y" : 67 }, { - "drilldown" : "009", "y" : 62, + "drilldown" : "009", "name" : "#009" }, { "name" : "#010", - "y" : 58, - "drilldown" : "010" + "drilldown" : "010", + "y" : 58 }, { + "name" : "#011", "drilldown" : "011", - "y" : 75, - "name" : "#011" + "y" : 75 }, { - "name" : "#012", + "y" : 81, "drilldown" : "012", - "y" : 81 + "name" : "#012" }, { + "drilldown" : "013", "name" : "#013", - "y" : 74, - "drilldown" : "013" + "y" : 74 }, { - "name" : "#014", "drilldown" : "014", + "name" : "#014", "y" : 94 }, { + "drilldown" : "015", "name" : "#015", - "y" : 7, - "drilldown" : "015" + "y" : 8 } - ] + ], + "colorByPoint" : "true", + "name" : "Perl Weekly Challenge Languages" } ], - "plotOptions" : { - "series" : { - "dataLabels" : { - "enabled" : 1, - "format" : "{point.y}" - }, - "borderWidth" : 0 - } + "chart" : { + "type" : "column" } } diff --git a/stats/pwc-leaders.json b/stats/pwc-leaders.json index 1afa645d1f..13efb26c25 100644 --- a/stats/pwc-leaders.json +++ b/stats/pwc-leaders.json @@ -1,48 +1,48 @@ { - "subtitle" : { - "text" : "Click the columns to drilldown the score breakdown. Last updated at 2019-07-01 17:50:20 GMT" - }, "tooltip" : { - "pointFormat" : "<span style=\"color:{point.color}\">{point.name}</span>: <b>{point.y:f}</b><br/>", "headerFormat" : "<span style=\"font-size:11px\"></span>", + "pointFormat" : "<span style=\"color:{point.color}\">{point.name}</span>: <b>{point.y:f}</b><br/>", "followPointer" : "true" }, + "title" : { + "text" : "Perl Weekly Challenge Leaders (TOP 50)" + }, + "plotOptions" : { + "series" : { + "borderWidth" : 0, + "dataLabels" : { + "format" : "{point.y}", + "enabled" : 1 + } + } + }, "legend" : { "enabled" : "false" }, - "xAxis" : { - "type" : "category" + "subtitle" : { + "text" : "Click the columns to drilldown the score breakdown. Last updated at 2019-07-01 17:54:29 GMT" }, "chart" : { "type" : "column" }, - "plotOptions" : { - "series" : { - "dataLabels" : { - "enabled" : 1, - "format" : "{point.y}" - }, - "borderWidth" : 0 - } - }, - "title" : { - "text" : "Perl Weekly Challenge Leaders (TOP 50)" + "xAxis" : { + "type" : "category" }, "drilldown" : { "series" : [ { "data" : [ [ + "Perl 5", + 35 + ], + [ "Perl 6", 35 ], [ "Blog", 4 - ], - [ - "Perl 5", - 35 ] ], "id" : "Joelle Maslak", @@ -51,40 +51,41 @@ { "data" : [ [ + "Perl 6", + 27 + ], + [ "Blog", 16 ], [ "Perl 5", 28 - ], - [ - "Perl 6", - 27 ] ], "id" : "Laurent Rosenfeld", "name" : "Laurent Rosenfeld" }, { + "name" : "Jaldhar H. Vyas", + "id" : "Jaldhar H. Vyas", "data" : [ [ - "Perl 6", - 28 - ], - [ "Blog", 2 ], [ + "Perl 6", + 28 + ], + [ "Perl 5", 28 ] - ], - "id" : "Jaldhar H. Vyas", - "name" : "Jaldhar H. Vyas" + ] }, { + "id" : "Ruben Westerberg", "data" : [ [ "Perl 6", @@ -95,8 +96,7 @@ 25 ] ], - "name" : "Ruben Westerberg", - "id" : "Ruben Westerberg" + "name" : "Ruben Westerberg" }, { "data" : [ @@ -113,50 +113,50 @@ "name" : "Adam Russell" }, { - "name" : "Arne Sommer", - "id" : "Arne Sommer", "data" : [ [ - "Blog", - 13 - ], - [ "Perl 6", 25 + ], + [ + "Blog", + 13 ] - ] + ], + "id" : "Arne Sommer", + "name" : "Arne Sommer" }, { - "id" : "Athanasius", "name" : "Athanasius", + "id" : "Athanasius", "data" : [ [ - "Perl 6", - 6 - ], - [ "Perl 5", 30 ], [ "Blog", 2 + ], + [ + "Perl 6", + 6 ] ] }, { - "id" : "Kian-Meng Ang", - "name" : "Kian-Meng Ang", "data" : [ [ - "Blog", - 11 - ], - [ "Perl 5", 24 + ], + [ + "Blog", + 11 ] - ] + ], + "id" : "Kian-Meng Ang", + "name" : "Kian-Meng Ang" }, { "name" : "Simon Proctor", @@ -167,12 +167,12 @@ 4 ], [ - "Blog", - 7 - ], - [ "Perl 6", 24 + ], + [ + "Blog", + 7 ] ] }, @@ -183,42 +183,42 @@ 14 ], [ - "Perl 5", - 17 - ], - [ "Perl 6", 1 + ], + [ + "Perl 5", + 17 ] ], - "name" : "Dave Jacoby", - "id" : "Dave Jacoby" + "id" : "Dave Jacoby", + "name" : "Dave Jacoby" }, { - "id" : "Francis Whittle", "name" : "Francis Whittle", + "id" : "Francis Whittle", "data" : [ [ - "Perl 6", - 24 - ], - [ "Blog", 7 + ], + [ + "Perl 6", + 24 ] ] }, { - "id" : "E. Choroba", "name" : "E. Choroba", + "id" : "E. Choroba", "data" : [ [ - "Blog", - 10 - ], - [ "Perl 5", 20 + ], + [ + "Blog", + 10 ] ] }, @@ -227,54 +227,55 @@ "id" : "Gustavo Chaves", "data" : [ [ - "Perl 5", - 25 - ], - [ "Blog", 4 + ], + [ + "Perl 5", + 25 ] ] }, { + "name" : "Andrezgz", + "id" : "Andrezgz", "data" : [ [ "Perl 5", 27 ] - ], - "id" : "Andrezgz", - "name" : "Andrezgz" + ] }, { "data" : [ [ + "Perl 6", + 12 + ], + [ "Blog", 6 ], [ "Perl 5", 6 - ], - [ - "Perl 6", - 12 ] ], - "name" : "Jo Christian Oterhals", - "id" : "Jo Christian Oterhals" + "id" : "Jo Christian Oterhals", + "name" : "Jo Christian Oterhals" }, { + "name" : "Daniel Mantovani", + "id" : "Daniel Mantovani", "data" : [ [ "Perl 5", 22 ] - ], - "id" : "Daniel Mantovani", - "name" : "Daniel Mantovani" + ] }, { + "name" : "Dr James A. Smith", "data" : [ [ "Perl 6", @@ -285,20 +286,20 @@ 12 ] ], - "name" : "Dr James A. Smith", "id" : "Dr James A. Smith" }, { - "id" : "Duncan C. White", "name" : "Duncan C. White", "data" : [ [ "Perl 5", 22 ] - ] + ], + "id" : "Duncan C. White" }, { + "id" : "Yozen Hernandez", "data" : [ [ "Perl 5", @@ -309,40 +310,39 @@ 6 ] ], - "name" : "Yozen Hernandez", - "id" : "Yozen Hernandez" + "name" : "Yozen Hernandez" }, { "name" : "Steven Wilson", "id" : "Steven Wilson", "data" : [ [ - "Perl 5", - 17 - ], - [ "Blog", 2 + ], + [ + "Perl 5", + 17 ] ] }, { + "name" : "Feng Chang", + "id" : "Feng Chang", "data" : [ [ - "Perl 6", + "Perl 5", 9 ], [ - "Perl 5", + "Perl 6", 9 ] - ], - "id" : "Feng Chang", - "name" : "Feng Chang" + ] }, { - "id" : "Mark Senn", "name" : "Mark Senn", + "id" : "Mark Senn", "data" : [ [ "Blog", @@ -355,6 +355,7 @@ ] }, { + "id" : "Nick Logan", "data" : [ [ "Perl 5", @@ -365,56 +366,55 @@ 8 ] ], - "name" : "Nick Logan", - "id" : "Nick Logan" + "name" : "Nick Logan" }, { - "id" : "Guillermo Ramos", - "name" : "Guillermo Ramos", "data" : [ [ "Perl 5", 14 ] - ] + ], + "id" : "Guillermo Ramos", + "name" : "Guillermo Ramos" }, { "name" : "Lars Balker", "id" : "Lars Balker", "data" : [ [ - "Perl 5", - 10 - ], - [ "Perl 6", 4 + ], + [ + "Perl 5", + 10 ] ] }, { - "name" : "Ozzy", "id" : "Ozzy", "data" : [ [ "Perl 6", 13 ] - ] + ], + "name" : "Ozzy" }, { + "id" : "Maxim Nechaev", "data" : [ [ "Perl 5", 12 ] ], - "name" : "Maxim Nechaev", - "id" : "Maxim Nechaev" + "name" : "Maxim Nechaev" |
