From df3f40fb8a8d3abc60b3f3bd8f22f7cbafe3f2d5 Mon Sep 17 00:00:00 2001 From: Mohammad S Anwar Date: Sun, 20 Dec 2020 15:17:46 +0000 Subject: - Added solutions by Athanasius. --- challenge-091/athanasius/perl/ch-1.pl | 123 +++++ challenge-091/athanasius/perl/ch-2.pl | 239 ++++++++++ challenge-091/athanasius/raku/ch-1.raku | 98 ++++ challenge-091/athanasius/raku/ch-2.raku | 211 +++++++++ stats/pwc-current.json | 263 ++++++----- stats/pwc-language-breakdown-summary.json | 60 +-- stats/pwc-language-breakdown.json | 642 ++++++++++++------------- stats/pwc-leaders.json | 762 +++++++++++++++--------------- stats/pwc-summary-1-30.json | 46 +- stats/pwc-summary-121-150.json | 110 ++--- stats/pwc-summary-151-180.json | 36 +- stats/pwc-summary-181-210.json | 46 +- stats/pwc-summary-31-60.json | 34 +- stats/pwc-summary-61-90.json | 34 +- stats/pwc-summary-91-120.json | 100 ++-- stats/pwc-summary.json | 470 +++++++++--------- 16 files changed, 1982 insertions(+), 1292 deletions(-) create mode 100644 challenge-091/athanasius/perl/ch-1.pl create mode 100644 challenge-091/athanasius/perl/ch-2.pl create mode 100644 challenge-091/athanasius/raku/ch-1.raku create mode 100644 challenge-091/athanasius/raku/ch-2.raku diff --git a/challenge-091/athanasius/perl/ch-1.pl b/challenge-091/athanasius/perl/ch-1.pl new file mode 100644 index 0000000000..b6c3e8bf4e --- /dev/null +++ b/challenge-091/athanasius/perl/ch-1.pl @@ -0,0 +1,123 @@ +#!perl + +############################################################################### +=comment + +Perl Weekly Challenge 091 +========================= + +Task #1 +------- +*Count Number* + +Submitted by: Mohammad S Anwar + +You are given a positive number $N. + +Write a script to count number and display as you read it. + +Example 1: + + Input: $N = 1122234 + Output: 21321314 + + as we read "two 1 three 2 one 3 one 4" + +Example 2: + + Input: $N = 2333445 + Output: 12332415 + + as we read "one 2 three 3 two 4 one 5" + +Example 3: + + Input: $N = 12345 + Output: 1112131415 + + as we read "one 1 one 2 one 3 one 4 one 5" + +=cut +############################################################################### + +#--------------------------------------# +# Copyright © 2020 PerlMonk Athanasius # +#--------------------------------------# + +use strict; +use warnings; +use Const::Fast; +use Regexp::Common qw( number ); + +const my $USAGE => +"Usage: + perl $0 + + A positive integer\n"; + +#------------------------------------------------------------------------------ +BEGIN +#------------------------------------------------------------------------------ +{ + $| = 1; + print "\nChallenge 091, Task #1: Count Number (Perl)\n\n"; +} + +#============================================================================== +MAIN: +#============================================================================== +{ + my $N = parse_command_line(); + + print "Input: \$N = $N\n"; + print 'Output: '; + + my @digits = split //, $N; + my $last_digit = shift @digits; + my $count = 1; + + # Note: the test for definedness is needed for when $next_digit is zero + + while (defined(my $next_digit = shift @digits)) + { + if ($next_digit == $last_digit) + { + ++$count; + } + else + { + print "$count$last_digit"; + + $last_digit = $next_digit; + $count = 1; + } + } + + print "$count$last_digit\n"; +} + +#------------------------------------------------------------------------------ +sub parse_command_line +#------------------------------------------------------------------------------ +{ + my $args = scalar @ARGV; + $args == 0 and error( 'No command-line arguments found' ); + $args == 1 or error( 'Too many command-line arguments' ); + + my $N = $ARGV[0]; + $N =~ / \A $RE{num}{int} \z /x or error( qq["$N" is not an integer] ); + $N > 0 or error( qq["$N" is not positive] ); + + return $N; +} + +#------------------------------------------------------------------------------ +sub error +#------------------------------------------------------------------------------ +{ + my ($message) = @_; + + die "ERROR: $message\n$USAGE"; +} + +############################################################################### diff --git a/challenge-091/athanasius/perl/ch-2.pl b/challenge-091/athanasius/perl/ch-2.pl new file mode 100644 index 0000000000..7a137fd2de --- /dev/null +++ b/challenge-091/athanasius/perl/ch-2.pl @@ -0,0 +1,239 @@ +#!perl + +############################################################################### +=comment + +Perl Weekly Challenge 091 +========================= + +Task #2 +------- +*Jump Game* + +Submitted by: Mohammad S Anwar + +You are given an array of positive numbers @N, where value at each index deter- +mines how far you are allowed to jump further. + +Write a script to decide if you can jump to the last index. Print 1 if you are +able to reach the last index otherwise 0. + +Example 1: + + Input: @N = (1, 2, 1, 2) + Output: 1 + + as we jump one place from index 0 and then two places from index 1 to reach + the last index. + +Example 2: + + Input: @N = (2,1,1,0,2) + Output: 0 + + it is impossible to reach the last index. as we jump two places from index 0 + to reach index 2, followed by one place jump from index 2 to reach the index + 3. once you reached the index 3, you can't go any further because you can only + jump 0 position further. + +=cut +############################################################################### + +#--------------------------------------# +# Copyright © 2020 PerlMonk Athanasius # +#--------------------------------------# + +#============================================================================== +=comment + +The Task description "...value at each index determines how far you are allowed +to jump further" can be interpreted in two ways. Suppose the index is $i and +the value is $n; then, arriving at index $i, one is allowed to jump either: + +(1) exactly $n indices forward; or +(2) any number of indices between 1 and $n forward, at the jumper's discretion. + +As (2) is the more interesting case, I've made it the default. For (1), enter + + -e or --exact + +on the command line. I've also included a + + -v or --verbose + +command-line option, which displays each step of the search. For case (2), +which is solved via backtracking (implemented using recursion), the verbose +output is useful because it shows which moves failed and why, and which move +(if any) was the first to succeed. + +=cut +#============================================================================== + +use strict; +use warnings; +use Const::Fast; +use Getopt::Long; +use Regexp::Common qw( number ); + +const my $USAGE => +"Usage: + perl $0 [--exact] [--verbose] [ ...] + + [ ...] 1+ non-negative integers + --e[xact] Allow exact moves only + --v[erbose] Show the steps followed\n"; + +my $Verbose; + +#------------------------------------------------------------------------------ +BEGIN +#------------------------------------------------------------------------------ +{ + $| = 1; + print "\nChallenge 091, Task #2: Jump Game (Perl)\n\n"; +} + +#============================================================================== +MAIN: +#============================================================================== +{ + my ($exact, @N) = parse_command_line(); + my $result; + + printf "Input: \@N = (%s)\n", join(', ', @N); + + if ($exact) + { + print "\nOnly *exact* jumps are allowed\n\n" if $Verbose; + $result = jump_exact(\@N); + } + else + { + print "\nThe value at each index is the *maximum* jump allowed\n\n" + if $Verbose; + $result = jump_up_to(\@N, 0); + } + + print "\n" if $Verbose; + printf "Output: %d\n", $result ? 1 : 0; +} + +#------------------------------------------------------------------------------ +sub jump_exact +#------------------------------------------------------------------------------ +{ + my ($N) = @_; + my $result = 1; + my $index = 0; + + until ($index == $#$N) + { + my $jump = $N->[$index]; + + if ($jump == 0) + { + _log('Failure: jump at index %d is 0', $index); + $result = 0; + last; + } + + _log('At index %d, jumping %d', $index, $jump); + $index += $jump; + + if ($index > $#$N) + { + _log('Failure: reached index %d', $index); + $result = 0; + last; + } + } + + _log('Success: reached index %d', $index) if $result; + + return $result; +} + +#------------------------------------------------------------------------------ +sub jump_up_to # Recursive subroutine +#------------------------------------------------------------------------------ +{ + my ($N, $index) = @_; + my $result = 0; + + if ($index == $#$N) # Base case 1: Success (target reached) + { + _log('Success: reached index %d', $index); + $result = 1; + } + elsif ($index > $#$N) # Base case 2: Failure (jumped too far) + { + _log('Failure: reached index %d, backtracking...', $index); + } + elsif ($N->[$index] == 0) # Base case 3: Failure (zero jump) + { + _log('Failure: jump at index %d is 0, ' . + ($index ? 'backtracking...' : 'search ended'), $index); + } + else + { + for my $i (reverse 1 .. $N->[$index]) # Prefer longer jumps + { + _log('At index %d, jumping %d', $index, $i); + + # Recursive case 1: Success + + last if $result = jump_up_to($N, $index + $i); + } + + unless ($result) # Recursive case 2: Failure + { + _log('Failure: all jumps failed at index %d, ' . + ($index ? 'backtracking...' : 'search ended'), $index); + } + } + + return $result; +} + +#------------------------------------------------------------------------------ +sub parse_command_line +#------------------------------------------------------------------------------ +{ + my $exact; + + GetOptions + ( + 'exact' => \$exact, + 'verbose' => \$Verbose, + ) or error( 'Invalid command-line arguments' ); + + scalar @ARGV > 0 or error( 'Command-line arguments missing' ); + + for (@ARGV) + { + / \A $RE{num}{int} \z /x or error( qq["$_" is not an integer] ); + $_ >= 0 or error( qq["$_" is negative] ); + } + + return ($exact, @ARGV); +} + +#------------------------------------------------------------------------------ +sub error +#------------------------------------------------------------------------------ +{ + my ($message) = @_; + + die "ERROR: $message\n$USAGE"; +} + +#------------------------------------------------------------------------------ +sub _log +#------------------------------------------------------------------------------ +{ + my ($format, @args) = @_; + + printf "--$format\n", @args if $Verbose; +} + +############################################################################### diff --git a/challenge-091/athanasius/raku/ch-1.raku b/challenge-091/athanasius/raku/ch-1.raku new file mode 100644 index 0000000000..261862d86b --- /dev/null +++ b/challenge-091/athanasius/raku/ch-1.raku @@ -0,0 +1,98 @@ +use v6d; + +############################################################################### +=begin comment + +Perl Weekly Challenge 091 +========================= + +Task #1 +------- +*Count Number* + +Submitted by: Mohammad S Anwar + +You are given a positive number $N. + +Write a script to count number and display as you read it. + +Example 1: + + Input: $N = 1122234 + Output: 21321314 + + as we read "two 1 three 2 one 3 one 4" + +Example 2: + + Input: $N = 2333445 + Output: 12332415 + + as we read "one 2 three 3 two 4 one 5" + +Example 3: + + Input: $N = 12345 + Output: 1112131415 + + as we read "one 1 one 2 one 3 one 4 one 5" + +=end comment +############################################################################### + +#--------------------------------------# +# Copyright © 2020 PerlMonk Athanasius # +#--------------------------------------# + +#------------------------------------------------------------------------------ +BEGIN +#------------------------------------------------------------------------------ +{ + "\nChallenge 091, Task #1: Count Number (Raku)\n".put; +} + +#============================================================================== +sub MAIN +( + Int:D $N where { $N > 0 } #= A positive integer +) +#============================================================================== +{ + "Input: \$N = $N".put; + 'Output: '.print; + + my UInt @digits = $N.split('', :skip-empty).map: { .Int }; + my UInt $last-digit = @digits.shift; + my UInt $count = 1; + + while @digits.elems + { + my UInt $next-digit = @digits.shift; + + if $next-digit == $last-digit + { + ++$count; + } + else + { + "$count$last-digit".print; + + $last-digit = $next-digit; + $count = 1; + } + } + + "$count$last-digit".put; +} + +#------------------------------------------------------------------------------ +sub USAGE() +#------------------------------------------------------------------------------ +{ + my Str $usage = $*USAGE; + + $usage ~~ s/ ($*PROGRAM-NAME) /raku $0/; + $usage.put; +} + +############################################################################## diff --git a/challenge-091/athanasius/raku/ch-2.raku b/challenge-091/athanasius/raku/ch-2.raku new file mode 100644 index 0000000000..52caabd0d8 --- /dev/null +++ b/challenge-091/athanasius/raku/ch-2.raku @@ -0,0 +1,211 @@ +use v6d; + +############################################################################### +=begin comment + +Perl Weekly Challenge 091 +========================= + +Task #2 +------- +*Jump Game* + +Submitted by: Mohammad S Anwar + +You are given an array of positive numbers @N, where value at each index deter- +mines how far you are allowed to jump further. + +Write a script to decide if you can jump to the last index. Print 1 if you are +able to reach the last index otherwise 0. + +Example 1: + + Input: @N = (1, 2, 1, 2) + Output: 1 + + as we jump one place from index 0 and then two places from index 1 to reach + the last index. + +Example 2: + + Input: @N = (2,1,1,0,2) + Output: 0 + + it is impossible to reach the last index. as we jump two places from index 0 + to reach index 2, followed by one place jump from index 2 to reach the index + 3. once you reached the index 3, you can't go any further because you can only + jump 0 position further. + +=end comment +############################################################################### + +#--------------------------------------# +# Copyright © 2020 PerlMonk Athanasius # +#--------------------------------------# + +#============================================================================== +=begin comment + +The Task description "...value at each index determines how far you are allowed +to jump further" can be interpreted in two ways. Suppose the index is $i and +the value is $n; then, arriving at index $i, one is allowed to jump either: + +(1) exactly $n indices forward; or +(2) any number of indices between 1 and $n forward, at the jumper's discretion. + +As (2) is the more interesting case, I've made it the default. For (1), enter + + --exact + +on the command line. I've also included a + + --verbose + +command-line option, which displays each step of the search. For case (2), +which is solved via backtracking (implemented using recursion), the verbose +output is useful because it shows which moves failed and why, and which move +(if any) was the first to succeed. + +=end comment +#============================================================================== + +my Bool $Verbose; + +#------------------------------------------------------------------------------ +BEGIN +#------------------------------------------------------------------------------ +{ + "\nChallenge 091, Task #2: Jump Game (Raku)\n".put; +} + +#============================================================================== +sub MAIN +( + *@N where { .elems > 0 && .all ~~ UInt:D }, #= 1+ non-negative integers + Bool:D :$exact = False, #= Allow exact moves only + Bool:D :$verbose = False, #= Show the steps followed +) +#============================================================================== +{ + $Verbose = $verbose; + + "Input: @N = (%s)\n".printf: @N.join: ', '; + + my Bool $result; + + if $exact + { + "\nOnly *exact* jumps are allowed\n".put if $Verbose; + $result = jump-exact(@N); + } + else + { + "\nThe value at each index is the *maximum* jump allowed\n".put + if $Verbose; + $result = jump-up-to(@N, 0); + } + + ''.put if $Verbose; + "Output: %d\n".printf: $result ?? 1 !! 0; +} + +#------------------------------------------------------------------------------ +sub jump-exact +( + Array:D[UInt:D] $N, +--> Bool:D +) +#------------------------------------------------------------------------------ +{ + my Bool $result = True; + my UInt $index = 0; + + until $index == $N.end + { + my UInt $jump = $N[$index]; + + if $jump == 0 + { + _log('Failure: jump at index %d is 0', $index); + $result = False; + last; + } + + _log('At index %d, jumping %d', $index, $jump); + $index += $jump; + + if $index > $N.end + { + _log('Failure: reached index %d', $index); + $result = False; + last; + } + } + + _log('Success: reached index %d', $index) if $result; + + return $result; +} + +#------------------------------------------------------------------------------ +sub jump-up-to # Recursive subroutine +( + Array:D[UInt:D] $N, + UInt:D $index, +--> Bool:D +) +#------------------------------------------------------------------------------ +{ + my Bool $result = False; + + if $index == $N.end # Base case 1: Success (target reached) + { + _log('Success: reached index %d', $index); + $result = True; + } + elsif $index > $N.end # Base case 2: Failure (jumped too far) + { + _log('Failure: reached index %d, backtracking...', $index); + } + elsif $N[$index] == 0 # Base case 3: Failure (zero jump) + { + _log('Failure: jump at index %d is 0, ' ~ + ($index ?? 'backtracking...' !! 'search ended'), $index); + } + else + { + for $N[$index] ... 1 -> UInt $i # Prefer longer jumps + { + _log('At index %d, jumping %d', $index, $i); + + last if $result = jump-up-to($N, $index + $i); # Recursive case 1: + } # Success + + unless $result # Recursive case 2: Failure (all jumps exhausted) + { + _log('Failure: all jumps failed at index %d, ' ~ + ($index ?? 'backtracking...' !! 'search ended'), $index); + } + } + + return $result; +} + +#------------------------------------------------------------------------------ +sub USAGE() +#------------------------------------------------------------------------------ +{ + my Str $usage = $*USAGE; + + $usage ~~ s/ ($*PROGRAM-NAME) /raku $0/; + $usage.put; +} + +#------------------------------------------------------------------------------ +sub _log( Str:D $format, *@args ) +#------------------------------------------------------------------------------ +{ + "--$format\n".printf: @args if $Verbose; +} + +############################################################################## diff --git a/stats/pwc-current.json b/stats/pwc-current.json index 7df559f964..a2607a69e4 100644 --- a/stats/pwc-current.json +++ b/stats/pwc-current.json @@ -1,11 +1,27 @@ { - "subtitle" : { - "text" : "[Champions: 29] Last updated at 2020-12-20 15:08:35 GMT" + "legend" : { + "enabled" : 0 + }, + "yAxis" : { + "title" : { + "text" : "Total Solutions" + } + }, + "plotOptions" : { + "series" : { + "dataLabels" : { + "format" : "{point.y}", + "enabled" : 1 + }, + "borderWidth" : 0 + } + }, + "title" : { + "text" : "Perl Weekly Challenge - 091" }, "drilldown" : { "series" : [ { - "id" : "Aaron Smith", "name" : "Aaron Smith", "data" : [ [ @@ -16,11 +32,10 @@ "Blog", 1 ] - ] + ], + "id" : "Aaron Smith" }, { - "name" : "Abigail", - "id" : "Abigail", "data" : [ [ "Perl", @@ -30,7 +45,9 @@ "Blog", 1 ] - ] + ], + "id" : "Abigail", + "name" : "Abigail" }, { "name" : "Alexander Karelas", @@ -43,16 +60,17 @@ ] }, { - "id" : "Alexander Pankoff", "name" : "Alexander Pankoff", "data" : [ [ "Perl", 2 ] - ] + ], + "id" : "Alexander Pankoff" }, { + "name" : "Andrew Shitov", "data" : [ [ "Raku", @@ -63,8 +81,21 @@ 1 ] ], - "id" : "Andrew Shitov", - "name" : "Andrew Shitov" + "id" : "Andrew Shitov" + }, + { + "data" : [ + [ + "Perl", + 2 + ], + [ + "Raku", + 2 + ] + ], + "id" : "Athanasius", + "name" : "Athanasius" }, { "data" : [ @@ -77,6 +108,7 @@ "name" : "Cheok-Yin Fung" }, { + "id" : "Dave Jacoby", "data" : [ [ "Perl", @@ -87,22 +119,19 @@ 1 ] ], - "id" : "Dave Jacoby", "name" : "Dave Jacoby" }, { - "name" : "E. Choroba", "id" : "E. Choroba", "data" : [ [ "Perl", 2 ] - ] + ], + "name" : "E. Choroba" }, { - "name" : "Flavio Poletti", - "id" : "Flavio Poletti", "data" : [ [ "Perl", @@ -112,7 +141,9 @@ "Blog", 2 ] - ] + ], + "id" : "Flavio Poletti", + "name" : "Flavio Poletti" }, { "name" : "James Smith", @@ -136,26 +167,25 @@ }, { "name" : "Joel Crosswhite", - "id" : "Joel Crosswhite", "data" : [ [ "Perl", 2 ] - ] + ], + "id" : "Joel Crosswhite" }, { "name" : "Jorg Sommrey", - "id" : "Jorg Sommrey", "data" : [ [ "Perl", 2 ] - ] + ], + "id" : "Jorg Sommrey" }, { - "id" : "Kang-min Liu", "name" : "Kang-min Liu", "data" : [ [ @@ -166,9 +196,11 @@ "Blog", 2 ] - ] + ], + "id" : "Kang-min Liu" }, { + "name" : "Laurent Rosenfeld", "data" : [ [ "Perl", @@ -183,18 +215,17 @@ 1 ] ], - "name" : "Laurent Rosenfeld", "id" : "Laurent Rosenfeld" }, { + "name" : "Lubos Kolouch", + "id" : "Lubos Kolouch", "data" : [ [ "Perl", 2 ] - ], - "id" : "Lubos Kolouch", - "name" : "Lubos Kolouch" + ] }, { "name" : "Mark Anderson", @@ -213,8 +244,8 @@ 2 ] ], - "name" : "Niels van Dijke", - "id" : "Niels van Dijke" + "id" : "Niels van Dijke", + "name" : "Niels van Dijke" }, { "name" : "Nuno Vieira", @@ -227,14 +258,14 @@ ] }, { + "id" : "Paulo Custodio", "data" : [ [ "Perl", 2 ] ], - "name" : "Paulo Custodio", - "id" : "Paulo Custodio" + "name" : "Paulo Custodio" }, { "data" : [ @@ -243,18 +274,18 @@ 2 ] ], - "name" : "Pete Houston", - "id" : "Pete Houston" + "id" : "Pete Houston", + "name" : "Pete Houston" }, { + "name" : "Philip Hood", + "id" : "Philip Hood", "data" : [ [ "Raku", 2 ] - ], - "name" : "Philip Hood", - "id" : "Philip Hood" + ] }, { "data" : [ @@ -289,14 +320,14 @@ ] }, { - "id" : "Simon Proctor", - "name" : "Simon Proctor", "data" : [ [ "Raku", 2 ] - ] + ], + "id" : "Simon Proctor", + "name" : "Simon Proctor" }, { "name" : "Stuart Little", @@ -309,6 +340,7 @@ ] }, { + "id" : "Ulrich Rieke", "data" : [ [ "Perl", @@ -319,10 +351,11 @@ 2 ] ], - "name" : "Ulrich Rieke", - "id" : "Ulrich Rieke" + "name" : "Ulrich Rieke" }, { + "name" : "W. Luis Mochan", + "id" : "W. Luis Mochan", "data" : [ [ "Perl", @@ -332,13 +365,11 @@ "Blog", 1 ] - ], - "id" : "W. Luis Mochan", - "name" : "W. Luis Mochan" + ] }, { - "id" : "Wanderdoc", "name" : "Wanderdoc", + "id" : "Wanderdoc", "data" : [ [ "Perl", @@ -348,22 +379,18 @@ } ] }, - "legend" : { - "enabled" : 0 - }, - "title" : { - "text" : "Perl Weekly Challenge - 091" - }, - "chart" : { - "type" : "column" + "subtitle" : { + "text" : "[Champions: 30] Last updated at 2020-12-20 15:17:31 GMT" }, "series" : [ { + "name" : "Perl Weekly Challenge - 091", + "colorByPoint" : 1, "data" : [ { "name" : "Aaron Smith", - "drilldown" : "Aaron Smith", - "y" : 3 + "y" : 3, + "drilldown" : "Aaron Smith" }, { "y" : 3, @@ -371,9 +398,9 @@ "name" : "Abigail" }, { - "name" : "Alexander Karelas", + "y" : 2, "drilldown" : "Alexander Karelas", - "y" : 2 + "name" : "Alexander Karelas" }, { "y" : 2, @@ -382,48 +409,53 @@ }, { "drilldown" : "Andrew Shitov", - "name" : "Andrew Shitov", - "y" : 3 + "y" : 3, + "name" : "Andrew Shitov" + }, + { + "name" : "Athanasius", + "drilldown" : "Athanasius", + "y" : 4 }, { - "drilldown" : "Cheok-Yin Fung", "name" : "Cheok-Yin Fung", + "drilldown" : "Cheok-Yin Fung", "y" : 2 }, { "y" : 3, - "name" : "Dave Jacoby", - "drilldown" : "Dave Jacoby" + "drilldown" : "Dave Jacoby", + "name" : "Dave Jacoby" }, { "name" : "E. Choroba", - "drilldown" : "E. Choroba", - "y" : 2 + "y" : 2, + "drilldown" : "E. Choroba" }, { - "drilldown" : "Flavio Poletti", "name" : "Flavio Poletti", - "y" : 4 + "y" : 4, + "drilldown" : "Flavio Poletti" }, { "name" : "James Smith", - "drilldown" : "James Smith", - "y" : 2 + "y" : 2, + "drilldown" : "James Smith" }, { "y" : 2, - "name" : "Jan Krnavek", - "drilldown" : "Jan Krnavek" + "drilldown" : "Jan Krnavek", + "name" : "Jan Krnavek" }, { "y" : 2, - "name" : "Joel Crosswhite", - "drilldown" : "Joel Crosswhite" + "drilldown" : "Joel Crosswhite", + "name" : "Joel Crosswhite" }, { + "drilldown" : "Jorg Sommrey", "y" : 2, - "name" : "Jorg Sommrey", - "drilldown" : "Jorg Sommrey" + "name" : "Jorg Sommrey" }, { "y" : 4, @@ -431,105 +463,92 @@ "name" : "Kang-min Liu" }, { + "name" : "Laurent Rosenfeld", "y" : 5, - "drilldown" : "Laurent Rosenfeld", - "name" : "Laurent Rosenfeld" + "drilldown" : "Laurent Rosenfeld" }, { "drilldown" : "Lubos Kolouch", - "name" : "Lubos Kolouch", - "y" : 2 + "y" : 2, + "name" : "Lubos Kolouch" }, { "y" : 2, - "name" : "Mark Anderson", - "drilldown" : "Mark Anderson" + "drilldown" : "Mark Anderson", + "name" : "Mark Anderson" }, { + "drilldown" : "Niels van Dijke", "y" : 2, - "name" : "Niels van Dijke", - "drilldown" : "Niels van Dijke" + "name" : "Niels van Dijke" }, { + "y" : 2, "drilldown" : "Nuno Vieira", - "name" : "Nuno Vieira", - "y" : 2 + "name" : "Nuno Vieira" }, { - "name" : "Paulo Custodio", "drilldown" : "Paulo Custodio", - "y" : 2 + "y" : 2, + "name" : "Paulo Custodio" }, { - "y" : 2, "name" : "Pete Houston", + "y" : 2, "drilldown" : "Pete Houston" }, { + "name" : "Philip Hood", "y" : 2, - "drilldown" : "Philip Hood", - "name" : "Philip Hood" + "drilldown" : "Philip Hood" }, { "y" : 5, - "name" : "Roger Bell_West", - "drilldown" : "Roger Bell_West" + "drilldown" : "Roger Bell_West", + "name" : "Roger Bell_West" }, { - "drilldown" : "Simon Green", "name" : "Simon Green", - "y" : 3 + "y" : 3, + "drilldown" : "Simon Green" }, { - "drilldown" : "Simon Proctor", "name" : "Simon Proctor", - "y" : 2 + "y" : 2, + "drilldown" : "Simon Proctor" }, { - "y" : 2, "name" : "Stuart Little", - "drilldown" : "Stuart Little" + "drilldown" : "Stuart Little", + "y" : 2 }, { "y" : 4, - "name" : "Ulrich Rieke", - "drilldown" : "Ulrich Rieke" + "drilldown" : "Ulrich Rieke", + "name" : "Ulrich Rieke" }, { - "name" : "W. Luis Mochan", "drilldown" : "W. Luis Mochan", - "y" : 3 + "y" : 3, + "name" : "W. Luis Mochan" }, { - "drilldown" : "Wanderdoc", "name" : "Wanderdoc", - "y" : 2 + "y" : 2, + "drilldown" : "Wanderdoc" } - ], - "name" : "Perl Weekly Challenge - 091", - "colorByPoint" : 1 + ] } ], + "chart" : { + "type" : "column" + }, "xAxis" : { "type" : "category" }, "tooltip" : { - "followPointer" : 1, "pointFormat" : "{point.name}: {point.y:f}
", - "headerFormat" : "{series.name}
" - }, - "yAxis" : { - "title" : { - "text" : "Total Solutions" - } - }, - "plotOptions" : { - "series" : { - "dataLabels" : { - "enabled" : 1, - "format" : "{point.y}" - }, - "borderWidth" : 0 - } + "headerFormat" : "{series.name}
", + "followPointer" : 1 } } diff --git a/stats/pwc-language-breakdown-summary.json b/stats/pwc-language-breakdown-summary.json index ac53309d8c..86aa88c881 100644 --- a/stats/pwc-language-breakdown-summary.json +++ b/stats/pwc-language-breakdown-summary.json @@ -1,40 +1,27 @@ { - "legend" : { - "enabled" : "false" - }, - "subtitle" : { - "text" : "Last updated at 2020-12-20 15:08:35 GMT" - }, - "chart" : { - "type" : "column" - }, "title" : { "text" : "Perl Weekly Challenge Contributions [2019 - 2020]" }, + "subtitle" : { + "text" : "Last updated at 2020-12-20 15:17:31 GMT" + }, "xAxis" : { + "type" : "category", "labels" : { "style" : { "fontSize" : "13px", "fontFamily" : "Verdana, sans-serif" } - }, - "type" : "category" + } + }, + "tooltip" : { + "pointFormat" : "{point.y:.0f}" + }, + "chart" : { + "type" : "column" }, "series" : [ { - "name" : "Contributions", - "dataLabels" : { - "y" : 10, - "rotation" : -90, - "enabled" : "true", - "format" : "{point.y:.0f}", - "align" : "right", - "style" : { - "fontSize" : "13px", - "fontFamily" : "Verdana, sans-serif" - }, - "color" : "#FFFFFF" - }, "data" : [ [ "Blog", @@ -42,22 +29,35 @@ ], [ "Perl", - 4118 + 4120 ], [ "Raku", - 2744 + 2746 ] - ] + ], + "name" : "Contributions", + "dataLabels" : { + "style" : { + "fontFamily" : "Verdana, sans-serif", + "fontSize" : "13px" + }, + "color" : "#FFFFFF", + "enabled" : "true", + "rotation" : -90, + "y" : 10, + "format" : "{point.y:.0f}", + "align" : "right" + } } ], - "tooltip" : { - "pointFormat" : "{point.y:.0f}" - }, "yAxis" : { "title" : { "text" : null }, "min" : 0 + }, + "legend" : { + "enabled" : "false" } } diff --git a/stats/pwc-language-breakdown.json b/stats/pwc-language-breakdown.json index e623830619..8957fc45df 100644 --- a/stats/pwc-language-breakdown.json +++ b/stats/pwc-language-breakdown.json @@ -1,21 +1,31 @@ { + "legend" : { + "enabled" : "false" + }, + "yAxis" : { + "title" : { + "text" : "Total Solutions" + } + }, "title" : { "text" : "Perl Weekly Challenge Language" }, - "chart" : { - "type" : "column" + "plotOptions" : { + "series" : { + "borderWidth" : 0, + "dataLabels" : { + "enabled" : 1, + "format" : "{point.y}" + } + } }, "subtitle" : { - "text" : "Click the columns to drilldown the language breakdown. Last updated at 2020-12-20 15:08:35 GMT" - }, - "legend" : { - "enabled" : "false" + "text" : "Click the columns to drilldown the language breakdown. Last updated at 2020-12-20 15:17:31 GMT" }, "drilldown" : { "series" : [ { "name" : "001", - "id" : "001", "data" : [ [ "Perl", @@ -29,9 +39,11 @@ "Blog", 11 ] - ] + ], + "id" : "001" }, { + "name" : "002", "data" : [ [ "Perl", @@ -46,12 +58,10 @@ 10 ] ], - "name" : "002", "id" : "002" }, { "id" : "003", - "name" : "003", "data" : [ [ "Perl", @@ -65,11 +75,11 @@ "Blog", 9 ] - ] + ], + "name" : "003" }, { "name" : "004", - "id" : "004", "data" : [ [ "Perl", @@ -83,11 +93,11 @@ "Blog", 10 ] - ] + ], + "id" : "004" }, { "name" : "005", - "id" : "005", "data" : [ [ "Perl", @@ -101,7 +111,8 @@ "Blog", 12 ] - ] + ], + "id" : "005" }, { "name" : "006", @@ -122,6 +133,7 @@ ] }, { + "name" : "007", "data" : [ [ "Perl", @@ -136,8 +148,7 @@ 10 ] ], - "id" : "007", - "name" : "007" + "id" : "007" }, { "data" : [ @@ -154,11 +165,10 @@ 12 ] ], - "name" : "008", - "id" : "008" + "id" : "008", + "name" : "008" }, { - "name" : "009", "id" : "009", "data" : [ [ @@ -173,7 +183,8 @@ "Blog", 13 ] - ] + ], + "name" : "009" }, { "data" : [ @@ -194,6 +205,7 @@ "name" : "010" }, { + "name" : "011", "data" : [ [ "Perl", @@ -208,10 +220,10 @@ 10 ] ], - "name" : "011", "id" : "011" }, { + "name" : "012", "data" : [ [ "Perl", @@ -226,10 +238,10 @@ 11 ] ], - "id" : "012", - "name" : "012" + "id" : "012" }, { + "name" : "013", "data" : [ [ "Perl", @@ -244,12 +256,10 @@ 13 ] ], - "name" : "013", "id" : "013" }, { "name" : "014", - "id" : "014", "data" : [ [ "Perl", @@ -263,9 +273,12 @@ "Blog", 15 ] - ] + ], + "id" : "014" }, { + "name" : "015", + "id" : "015", "data" : [ [ "Perl", @@ -279,11 +292,10 @@ "Blog", 15 ] - ], - "id" : "015", - "name" : "015" + ] }, { + "name" : "016", "data" : [ [ "Perl", @@ -298,12 +310,10 @@ 12 ] ], - "id" : "016", - "name" : "016" + "id" : "016" }, { "name" : "017", - "id" : "017", "data" : [ [ "Perl", @@ -317,9 +327,11 @@ "Blog", 12 ] - ] + ], + "id" : "017" }, { + "id" : "018", "data" : [ [ "Perl", @@ -334,7 +346,6 @@ 14 ] ], - "id" : "018", "name" : "018" }, { @@ -352,10 +363,11 @@ 13 ] ], - "name" : "019", - "id" : "019" + "id" : "019", + "name" : "019" }, { + "id" : "020", "data" : [ [ "Perl", @@ -370,10 +382,10 @@ 13 ] ], - "name" : "020", - "id" : "020" + "name" : "020" }, { + "name" : "021", "data" : [ [ "Perl", @@ -388,8 +400,7 @@ 10 ] ], - "id" : "021", - "name" : "021" + "id" : "021" }, { "data" : [ @@ -411,7 +422,6 @@ }, { "id" : "023", - "name" : "023", "data" : [ [ "Perl", @@ -425,11 +435,12 @@ "Blog", 12 ] - ] + ], + "name" : "023" }, { - "id" : "024", "name" : "024", + "id" : "024", "data" : [ [ "Perl", @@ -460,10 +471,11 @@ 12 ] ], - "name" : "025", - "id" : "025" + "id" : "025", + "name" : "025" }, { + "id" : "026", "data" : [ [ "Perl", @@ -478,10 +490,11 @@ 10 ] ], - "id" : "026", "name" : "026" }, { + "name" : "027", + "id" : "027", "data" : [ [ "Perl", @@ -495,9 +508,7 @@ "Blog", 9 ] - ], - "id" : "027", - "name" : "027" + ] }, { "data" : [ @@ -514,10 +525,11 @@ 9 ] ], - "name" : "028", - "id" : "028" + "id" : "028", + "name" : "028" }, { + "name" : "029", "data" : [ [ "Perl", @@ -532,11 +544,9 @@ 12 ] ], - "name" : "029", "id" : "029" }, { - "id" : "030", "name" : "030", "data" : [ [ @@ -551,11 +561,10 @@ "Blog", 10 ] - ] + ], + "id" : "030" }, { - "name" : "031", - "id" : "031", "data" : [ [ "Perl", @@ -569,11 +578,11 @@ "Blog", 9 ] - ] + ], + "id" : "031", + "name" : "031" }, { - "id" : "032", - "name" : "032", "data" : [ [ "Perl", @@ -587,9 +596,12 @@ "Blog", 10 ] - ] + ], + "id" : "032", + "name" : "032" }, { + "id" : "033", "data" : [ [ "Perl", @@ -604,7 +616,6 @@ 10 ] ], - "id" : "033", "name" : "033" }, { @@ -622,12 +633,11 @@ 11 ] ], - "name" : "034", - "id" : "034" + "id" : "034", + "name" : "034" }, { "name" : "035", - "id" : "035", "data" : [ [ "Perl", @@ -641,10 +651,10 @@ "Blog", 9 ] - ] + ], + "id" : "035" }, { - "name" : "036", "id" : "036", "data" : [ [ @@ -659,9 +669,12 @@ "Blog", 11 ] - ] + ], + "name" : "036" }, { + "name" : "037", + "id" : "037", "data" : [ [ "Perl", @@ -675,13 +688,11 @@ "Blog", 9 ] - ], - "id" : "037", - "name" : "037" + ] }, { - "id" : "038", "name" : "038", + "id" : "038", "data" : [ [ "Perl", @@ -698,6 +709,8 @@ ] }, { + "name" : "039", + "id" : "039", "data" : [ [ "Perl", @@ -711,11 +724,10 @@ "Blog", 12 ] - ], - "name" : "039", - "id" : "039" + ] }, { + "name" : "040", "data" : [ [ "Perl", @@ -730,12 +742,9 @@ 10 ] ], - "name" : "040", "id" : "040" }, { - "name" : "041", - "id" : "041", "data" : [ [ "Perl", @@ -749,9 +758,12 @@ "Blog", 9 ] - ] + ], + "id" : "041", + "name" : "041" }, { + "name" : "042", "data" : [ [ "Perl", @@ -766,10 +778,11 @@ 11 ] ], - "name" : "042", "id" : "042" }, { + "name" : "043", + "id" : "043", "data" : [ [ "Perl", @@ -783,13 +796,9 @@ "Blog", 11 ] - ], - "id" : "043", - "name" : "043" + ] }, { - "id" : "044", - "name" : "044", "data" : [ [ "Perl", @@ -803,9 +812,12 @@ "Blog", 11 ] - ] + ], + "id" : "044", + "name" : "044" }, { + "name" : "045", "data" : [ [ "Perl", @@ -820,10 +832,11 @@ 11 ] ], - "name" : "045", "id" : "045" }, { + "name" : "046", + "id" : "046", "data" : [ [ "Perl", @@ -837,9 +850,7 @@ "Blog", 10 ] - ], - "id" : "046", - "name" : "046" + ] }, { "data" : [ @@ -856,10 +867,11 @@ 10 ] ], - "name" : "047", - "id" : "047" + "id" : "047", + "name" : "047" }, { + "name" : "048", "data" : [ [ "Perl", @@ -874,12 +886,9 @@ 12 ] ], - "name" : "048", "id" : "048" }, { - "name" : "049", - "id" : "049", "data" : [ [ "Perl", @@ -893,11 +902,11 @@ "Blog", 12 ] - ] + ], + "id" : "049", + "name" : "049" }, { - "id" : "050", - "name" : "050", "data" : [ [ "Perl", @@ -911,11 +920,13 @@ "Blog", 12 ] - ] + ], + "id" : "050", + "name" : "050" }, { - "id" : "051", "name" : "051", + "id" : "051", "data" : [ [ "Perl", @@ -932,6 +943,8 @@ ] }, { + "name" : "052", + "id" : "052", "data" : [ [ "Perl", @@ -945,9 +958,7 @@ "Blog", 14 ] - ], - "name" : "052", - "id" : "052" + ] }, { "name" : "053", @@ -968,8 +979,8 @@ ] }, { - "id" : "054", "name" : "054", + "id" : "054", "data" : [ [ "Perl", @@ -1000,10 +1011,11 @@ 14 ] ], - "name" : "055", - "id" : "055" + "id" : "055", + "name" : "055" }, { + "name" : "056", "data" : [ [ "Perl", @@ -1018,11 +1030,9 @@ 16 ] ], - "name" : "056", "id" : "056" }, { - "name" : "057", "id" : "057", "data" : [ [ @@ -1037,9 +1047,12 @@ "Blog", 15 ] - ] + ], + "name" : "057" }, { + "name" : "058", + "id" : "058", "data" : [ [ "Perl", @@ -1053,12 +1066,9 @@ "Blog", 13 ] - ], - "id" : "058", - "name" : "058" + ] }, { - "id" : "059", "name" : "059", "data" : [ [ @@ -1073,11 +1083,12 @@ "Blog", 16 ] - ] + ], + "id" : "059" }, { - "id" : "060", "name" : "060", + "id" : "060", "data" : [ [ "Perl", @@ -1094,7 +1105,6 @@ ] }, { - "name" : "061", "id" : "061", "data" : [ [ @@ -1109,7 +1119,8 @@ "Blog", 14 ] - ] + ], + "name" : "061" }, { "data" : [ @@ -1126,8 +1137,8 @@ 11 ] ], - "name" : "062", - "id" : "062" + "id" : "062", + "name" : "062" }, { "data" : [ @@ -1144,12 +1155,11 @@ 13 ] ], - "name" : "063", - "id" : "063" + "id" : "063", + "name" : "063" }, { "id" : "064", - "name" : "064", "data" : [ [ "Perl", @@ -1163,7 +1173,8 @@ "Blog", 16 ] - ] + ], + "name" : "064" }, { "data" : [ @@ -1180,10 +1191,11 @@ 15 ] ], - "name" : "065", - "id" : "065" + "id" : "065", + "name" : "065" }, { + "name" : "066", "data" : [ [ "Perl", @@ -1198,12 +1210,10 @@ 14 ] ], - "name" : "066", "id" : "066" }, { "id" : "067", - "name" : "067", "data" : [ [ "Perl", @@ -1217,7 +1227,8 @@ "Blog", 18 ] - ] + ], + "name" : "067" }, { "data" : [ @@ -1234,12 +1245,10 @@ 13 ] ], - "name" : "068", - "id" : "068" + "id" : "068", + "name" : "068" }, { - "name" : "069", - "id" : "069", "data" : [ [ "Perl", @@ -1253,11 +1262,12 @@ "Blog", 16 ] - ] + ], + "id" : "069", + "name" : "069" }, { "name" : "070", - "id" : "070", "data" : [ [ "Perl", @@ -1271,11 +1281,10 @@ "Blog", 17 ] - ] + ], + "id" : "070" }, { - "id" : "071", - "name" : "071", "data" : [ [ "Perl", @@ -1289,7 +1298,9 @@ "Blog", 15 ] - ] + ], + "id" : "071", + "name" : "071" }, { "data" : [ @@ -1306,8 +1317,8 @@ 19 ] ], - "name" : "072", - "id" : "072" + "id" : "072", + "name" : "072" }, { "data" : [ @@ -1324,8 +1335,8 @@ 17 ] ], - "name" : "073", - "id" : "073" + "id" : "073", + "name" : "073" }, { "data" : [ @@ -1360,10 +1371,12 @@ 20 ] ], - "name" : "075", - "id" : "075" + "id" : "075", + "name" : "075" }, { + "name" : "076", + "id" : "076", "data" : [ [ "Perl", @@ -1377,12 +1390,9 @@ "Blog", 16 ] - ], - "id" : "076", - "name" : "076" + ] }, { - "name" : "077", "id" : "077", "data" : [ [ @@ -1397,7 +1407,8 @@ "Blog", 14 ] - ] + ], + "name" : "077" }, { "data" : [ @@ -1414,12 +1425,10 @@ 18 ] ], - "name" : "078", - "id" : "078" + "id" : "078", + "name" : "078" }, { - "id" : "079", - "name" : "079", "data" : [ [ "Perl", @@ -1433,9 +1442,12 @@ "Blog", 17 ] - ] + ], + "id" : "079", + "name" : "079" }, { + "name" : "080", "data" : [ [ "Perl", @@ -1450,8 +1462,7 @@ 16 ] ], - "id" : "080", - "name" : "080" + "id" : "080" }, { "data" : [ @@ -1468,12 +1479,10 @@ 15 ] ], - "name" : "081", - "id" : "081" + "id" : "081", + "name" : "081" }, { - "id" : "082", - "name" : "082", "data" : [ [ "Perl", @@ -1487,9 +1496,12 @@ "Blog", 17 ] - ] + ], + "id" : "082", + "name" : "082" }, { + "name" : "083", "data" : [ [ "Perl", @@ -1504,10 +1516,10 @@ 16 ] ], - "name" : "083", "id" : "083" }, { + "name" : "084", "data" : [ [ "Perl", @@ -1522,7 +1534,6 @@ 12 ] ], - "name" : "084", "id" : "084" }, { @@ -1544,6 +1555,7 @@ "name" : "085" }, { + "name" : "086", "data" : [ [ "Perl", @@ -1558,10 +1570,10 @@ 15 ] ], - "id" : "086", - "name" : "086" + "id" : "086" }, { + "id" : "087", "data" : [ [ "Perl", @@ -1576,12 +1588,9 @@ 14 ] ], - "id" : "087", "name" : "087" }, { - "id" : "088", - "name" : "088", "data" : [ [ "Perl", @@ -1595,10 +1604,11 @@ "Blog", 20 ] - ] + ], + "id" : "088", + "name" : "088" }, { - "name" : "089", "id" : "089", "data" : [ [ @@ -1613,11 +1623,11 @@ "Blog", 20 ] - ] + ], + "name" : "089" }, { "id" : "090", - "name" : "090", "data" : [ [ "Perl", @@ -1631,49 +1641,41 @@ "Blog", 16 ] - ] + ], + "name" : "090" }, { - "id" : "091", "name" : "091", "data" : [ [ "Perl", - 42 + 44 ], [ "Raku", - 22 + 24 ], [ "Blog", 12 ] - ] + ], + "id" : "091" } ] }, - "yAxis" : { - "title" : { - "text" : "Total Solutions" - } + "xAxis" : { + "type" : "category" }, "tooltip" : { - "followPointer" : "true", "pointFormat" : "Challenge {point.name}: {point.y:f}
", + "followPointer" : "true", "headerFormat" : "" }, - "plotOptions" : { - "series" : { - "dataLabels" : { - "enabled" : 1, - "format" : "{point.y}" - }, - "borderWidth" : 0 - } - }, "series" : [ { + "colorByPoint" : "true", + "name" : "Perl Weekly Challenge Languages", "data" : [ { "name" : "#001", @@ -1681,9 +1683,9 @@ "y" : 147 }, { + "drilldown" : "002", "y" : 116, - "name" : "#002", - "drilldown" : "002" + "name" : "#002" }, { "name" : "#003", @@ -1691,53 +1693,53 @@ "y" : 73 }, { - "y" : 93, "drilldown" : "004", + "y" : 93, "name" : "#004" }, { - "y" : 74, + "name" : "#005", "drilldown" : "005", - "name" : "#005" + "y" : 74 }, {