aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad S Anwar <mohammad.anwar@yahoo.com>2021-06-25 20:00:53 +0100
committerMohammad S Anwar <mohammad.anwar@yahoo.com>2021-06-25 20:00:53 +0100
commit0b3e22eaa7919c245aafaefd724b8cfd7fcb612d (patch)
treee0d2e48c568522498e0bd1f647d803452490d1f2
parent19f668d40162fb8dc37627310b4572bdcece593c (diff)
downloadperlweeklychallenge-club-0b3e22eaa7919c245aafaefd724b8cfd7fcb612d.tar.gz
perlweeklychallenge-club-0b3e22eaa7919c245aafaefd724b8cfd7fcb612d.tar.bz2
perlweeklychallenge-club-0b3e22eaa7919c245aafaefd724b8cfd7fcb612d.zip
- Added solutions by Pete Houston.
-rw-r--r--challenge-118/pete-houston/perl/ch-1.pl28
-rw-r--r--challenge-118/pete-houston/perl/ch-2.pl260
-rw-r--r--stats/pwc-current.json357
-rw-r--r--stats/pwc-language-breakdown-summary.json40
-rw-r--r--stats/pwc-language-breakdown.json1662
-rw-r--r--stats/pwc-leaders.json372
-rw-r--r--stats/pwc-summary-1-30.json32
-rw-r--r--stats/pwc-summary-121-150.json96
-rw-r--r--stats/pwc-summary-151-180.json46
-rw-r--r--stats/pwc-summary-181-210.json36
-rw-r--r--stats/pwc-summary-211-240.json86
-rw-r--r--stats/pwc-summary-31-60.json102
-rw-r--r--stats/pwc-summary-61-90.json100
-rw-r--r--stats/pwc-summary-91-120.json42
-rw-r--r--stats/pwc-summary.json46
15 files changed, 1804 insertions, 1501 deletions
diff --git a/challenge-118/pete-houston/perl/ch-1.pl b/challenge-118/pete-houston/perl/ch-1.pl
new file mode 100644
index 0000000000..24533994c1
--- /dev/null
+++ b/challenge-118/pete-houston/perl/ch-1.pl
@@ -0,0 +1,28 @@
+#!/usr/bin/env perl
+#===============================================================================
+#
+# FILE: 11801.pl
+#
+# USAGE: ./11801.pl N
+#
+# DESCRIPTION: Print 1 if the decimal natural number N is a palindrome
+# when written as binary, 0 otherwise.
+#
+# REQUIREMENTS: Bit::Manip
+# AUTHOR: Pete Houston (pete), cpan@openstrike.co.uk
+# ORGANIZATION: Openstrike
+# VERSION: 1.0
+# CREATED: 21/06/21
+#===============================================================================
+
+use strict;
+use warnings;
+use Bit::Manip 'bit_bin';
+
+my ($n) = shift =~ /^([1-9][0-9]*)$/ or die "Argument must be positive int\n";
+my $bin = bit_bin ($n);
+my $ispal = reverse ($bin) eq $bin ? 1 : 0;
+
+print "$ispal as binary representation of $n is $bin which is "
+ . ($ispal ? '' : 'NOT ')
+ . "a palindrome.\n";
diff --git a/challenge-118/pete-houston/perl/ch-2.pl b/challenge-118/pete-houston/perl/ch-2.pl
new file mode 100644
index 0000000000..905c882819
--- /dev/null
+++ b/challenge-118/pete-houston/perl/ch-2.pl
@@ -0,0 +1,260 @@
+#!/usr/bin/env perl
+#===============================================================================
+#
+# FILE: 11802.pl
+#
+# USAGE: ./11802.pl [ -v N ]
+#
+# DESCRIPTION: Knight moves: hop around the board collecting the treasure
+#
+# OPTIONS: -v specifies the verbosity level:
+# 0 = minimum verbosity (default)
+# 1 = debug (show target picking, etc.)
+# 2 = trace (show maths, move choices, etc.)
+# REQUIREMENTS: Getopt::Std
+# BUGS: Not optimal. Code could be much neater, too.
+# NOTES: See POD for full details
+# AUTHOR: Pete Houston (pete), cpan@openstrike.co.uk
+# ORGANIZATION: Openstrike
+# VERSION: 1.0
+# CREATED: 21/06/21
+#===============================================================================
+
+use strict;
+use warnings;
+
+use Getopt::Std;
+
+=head1 Knight Moves
+
+This is a 1st-order solution to task 2 of Challenge 118 (0th order being
+the brute-force visit-all-the-squares approach). It attempts to be
+semi-smart in determining how and whither the knight should move.
+
+=head2 Algorithm
+
+A target is chosen by least square distance from the knight. This target
+is pursued and will be the next acquired unless any other target is just
+one move away at any point during this pursuit.
+
+The pursuit of the target varies depending on the distance to it.
+Sufficiently far-off targets (square distance > 5) are approached
+directly with the larger difference of x and y getting the larger step.
+
+When the target is closer (within 2 squares) we pick one of the 2
+possible best known moves, always preferring squares we have not visited
+before.
+
+Once a treasure has been acquired it is removed from the list and the
+next target chosen.
+
+When no targets are left, the quest is complete.
+
+The algorithm does not distinguish between equidistant objects when
+choosing the next target, so starting at a8 the nearest targets are the
+equidistant c4 and e6. Clearly e6 is preferable as it involves less
+backtracking but the algorithm ingores this and just chooses randomly
+between them. Scope for improvement.
+
+As it stands for the given starting point and treasure distribution the
+algorithm takes between 12 and 16 moves inclusive to gather all the
+treasure.
+
+=head2 Co-ordinates
+
+Rather than faff about with letters and numbers internally we will use a
+catesian grid with 0,0 at a1 and 7,7 at h8. These are converted to
+chess notation on output for the benefit of the user. Debugging messages
+may inlcude the internal representations.
+
+=cut
+
+# Do we want the verbose output?
+my $DEBUG = 0;
+{
+ my %opts;
+ $Getopt::Std::STANDARD_HELP_VERSION = 1;
+ getopts ('v:', \%opts) or die "Bad options.\n";
+ $DEBUG = $opts{v} if defined ($opts{v}) && $opts{v} =~ /^[012]$/;
+ debug (1, "Debugging at level $DEBUG enabled.\n");
+}
+
+# Start position - alter this if you want a different puzzle
+my @kpos = (0, 7); # a8
+
+# Target positions - alter these if you want a different puzzle
+my %tpos = (
+ '0,1' => 1,
+ '1,0' => 1,
+ '1,1' => 1,
+ '1,2' => 1,
+ '2,3' => 1,
+ '4,5' => 1,
+);
+
+# How does a knight move
+my @moves = (
+ [ 2, 1], [ 2, -1],
+ [-2, 1], [-2, -1],
+ [ 1, 2], [ 1, -2],
+ [-1, 2], [-1, -2]
+);
+
+my @targets = map { [split /,/] } keys %tpos;
+my $next;
+my @log;
+my %visited;
+
+print "Starting at " . pstr (@kpos) . "\n";
+OUTER: while (keys %tpos) {
+ $visited{"@kpos"} = 1;
+ # Is any target a valid jump from here? If so, snaffle it.
+ for my $t (@targets) {
+ my $move = [$t->[0] - $kpos[0], $t->[1] - $kpos[1]];
+ if (grep { "@$_" eq "@$move" } @moves) {
+ @kpos = @$t;
+ print "Moved to " . pstr (@kpos) . " and snaffled treasure\n";
+ push @log, [@kpos];
+ delete $tpos{join ',', @$t};
+ @targets = map { [split /,/] } keys %tpos;
+ undef $next;
+ next OUTER;
+ }
+ }
+
+ # Find closest target and navigate towards it.
+ my $nsqd = 0;
+ unless (defined $next) {
+ my @dists = map { ($_->[0] - $kpos[0]) ** 2 + ($_->[1] -$kpos[1]) ** 2 }
+ @targets;
+ my $ni = 0;
+ for (0 .. $#dists) {
+ $ni = $_ if $dists[$_] < $dists[$ni];
+ }
+ $next = $targets[$ni];
+ $nsqd = $dists[$ni];
+ debug (1, "Nearest target is at " . pstr (@$next) .
+ " (sq distance = $nsqd)\n");
+ } else {
+ $nsqd = ($next->[0] - $kpos[0]) ** 2 + ($next->[1] - $kpos[1]) ** 2;
+ debug (2, "Square distance to next target = $nsqd\n");
+ }
+
+ # Which is the way to go to now?
+ if ($nsqd == 1) {
+ # Get it to where it is 2 away, so 1 or 2 choices
+ # Move is 1 to the target and then 2 away sideways
+ # kpos = x,y targ = x + n, y + m where n,m is some combo of +-1
+ # and 0.
+ debug (2, "Target is 1 lateral space away\n");
+ my @opts = $next->[0] eq $kpos[0] ?
+ ([$kpos[0] + 2, $next->[1]], [$kpos[0] - 2, $next->[1]]) :
+ ([$next->[0], $kpos[1] + 2], [$next->[0], $kpos[1] - 2]);
+ @kpos = @{best_choice (@opts)};
+ } elsif ($nsqd == 2) {
+ # Next diagonal, so up to 2 choices
+ # kpos = x,y targ = x +/- 1, y +/- 1
+ debug (2, "Target is 1 diagonal space away\n");
+ my @opts = ([$kpos[0] + ($next->[0] - $kpos[0]) * 2,
+ $kpos[1] + ($kpos[1] - $next->[1])],
+ [$kpos[0] + ($kpos[0] - $next->[0]),
+ $kpos[1] + ($next->[1] - $kpos[1]) * 2]);
+ my $best = best_choice (@opts);
+ # There may be no valid choices if we are hemmed in a corner
+ unless (defined $best) {
+ # Just pick a valid one
+ $best = best_choice (
+ map { [ $_->[0] + $kpos[0], $_->[1] + $kpos[1] ] }
+ @moves );
+ }
+ @kpos = @$best;
+ } elsif ($nsqd == 4) {
+ # 2 away, so 1 or 2 choices
+ # kpos = x,y targ = x + n, y + m where n,m is some combo of +-2
+ # and 0.
+ debug (2, "Target is 2 lateral spaces away\n");
+ my @opts = $next->[0] eq $kpos[0] ?
+ ([$kpos[0] + 2, $kpos[1] + ($next->[1] - $kpos[1]) / 2],
+ [$kpos[0] - 2, $kpos[1] + ($next->[1] - $kpos[1]) / 2]) :
+ ([$kpos[0] + ($next->[0] - $kpos[0]) / 2, $kpos[1] + 2],
+ [$kpos[0] + ($next->[0] - $kpos[0]) / 2, $kpos[1] - 2]);
+ @kpos = @{best_choice (@opts)};
+ } else {
+ # Too far away to worry. Just head in the general direction
+ debug (2, "Target is far away - heading towards it\n");
+ my $dx = $next->[0] - $kpos[0];
+ my $dy = $next->[1] - $kpos[1];
+ debug (2, "dx = $dx, dy = $dy\n");
+ my @move;
+ if (abs ($dx) > abs ($dy)) {
+ my $x = $kpos[0] + ($dx > 0 ? 2 : -2);
+ my $ychange = $dy > 0 ? 1 : -1;
+ @move = ([$x, $kpos[1] + $ychange],
+ [$x, $kpos[1] - $ychange]);
+ } else {
+ my $y = $kpos[1] + ($dy > 0 ? 2 : -2);
+ my $xchange = $dx > 0 ? 1 : -1;
+ @move = ([$kpos[0] + $xchange, $y],
+ [$kpos[0] - $xchange, $y]);
+ }
+ my $best = best_choice (@move);
+ @kpos = @$best;
+ }
+ print "Moved to " . pstr (@kpos) . "\n";
+ push @log, [@kpos];
+}
+
+print "\nMade " . @log . " moves visiting " .
+ (1 + keys %visited) . " squares.\n";
+
+=head2 Subroutines
+
+=head3 best_choice
+
+Given an array of positions (each an arrayref) return the one arrayref
+which is decided to be the "best", or undef if none are on the board.
+
+=cut
+
+sub best_choice {
+ my @possibles = @_;
+
+ debug (1, "Considering " . scalar @possibles . " moves\n");
+ debug (2, "Possibles are: " .
+ join (',', map { "($_->[0], $_->[1])" } @possibles) . "\n");
+ # Rule out any impossibles
+ @possibles = grep { $_->[0] < 8 && $_->[0] > -1
+ && $_->[1] < 8 && $_->[1] > -1 } @possibles;
+ return unless scalar @possibles;
+ debug (1, "Have " . scalar @possibles . " valid moves\n");
+
+ # Pick one that we've not visited before (if any)
+ my ($best) = grep { ! $visited{"@$_"} } @possibles;
+ return $best // $possibles[0];
+}
+
+=head3 pstr
+
+Given the position of the knight as an array of ints, translate into
+standard chess notation and return that string suitable for printing.
+
+=cut
+
+sub pstr {
+ my ($x, $y) = @_;
+ $x = chr ($x + 97);
+ $y++;
+ return "$x$y";
+}
+
+=head3 debug
+
+Given a debug level (1, 2) and a string output the string if the debug
+is at the relevant level.
+
+=cut
+
+sub debug {
+ my ($l, $str) = @_;
+ print $str if $DEBUG >= $l;
+}
diff --git a/stats/pwc-current.json b/stats/pwc-current.json
index 91406f94b4..756f5e16e5 100644
--- a/stats/pwc-current.json
+++ b/stats/pwc-current.json
@@ -1,149 +1,17 @@
{
- "legend" : {
- "enabled" : 0
- },
- "tooltip" : {
- "headerFormat" : "<span style='font-size:11px'>{series.name}</span><br/>",
- "pointFormat" : "<span style='color:{point.color}'>{point.name}</span>: <b>{point.y:f}</b><br/>",
- "followPointer" : 1
- },
- "title" : {
- "text" : "Perl Weekly Challenge - 118"
- },
- "xAxis" : {
- "type" : "category"
- },
- "yAxis" : {
- "title" : {
- "text" : "Total Solutions"
- }
- },
- "series" : [
- {
- "colorByPoint" : 1,
- "name" : "Perl Weekly Challenge - 118",
- "data" : [
- {
- "name" : "Cheok-Yin Fung",
- "drilldown" : "Cheok-Yin Fung",
- "y" : 2
- },
- {
- "drilldown" : "Dave Jacoby",
- "y" : 3,
- "name" : "Dave Jacoby"
- },
- {
- "drilldown" : "Duane Powell",
- "y" : 2,
- "name" : "Duane Powell"
- },
- {
- "y" : 2,
- "drilldown" : "E. Choroba",
- "name" : "E. Choroba"
- },
- {
- "name" : "Flavio Poletti",
- "drilldown" : "Flavio Poletti",
- "y" : 6
- },
- {
- "name" : "James Smith",
- "y" : 3,
- "drilldown" : "James Smith"
- },
- {
- "drilldown" : "Jorg Sommrey",
- "y" : 2,
- "name" : "Jorg Sommrey"
- },
- {
- "drilldown" : "Lance Wicks",
- "y" : 2,
- "name" : "Lance Wicks"
- },
- {
- "drilldown" : "Laurent Rosenfeld",
- "y" : 3,
- "name" : "Laurent Rosenfeld"
- },
- {
- "drilldown" : "Lucas Ransan",
- "y" : 2,
- "name" : "Lucas Ransan"
- },
- {
- "drilldown" : "Mohammad S Anwar",
- "y" : 1,
- "name" : "Mohammad S Anwar"
- },
- {
- "name" : "Niels van Dijke",
- "y" : 1,
- "drilldown" : "Niels van Dijke"
- },
- {
- "name" : "Paulo Custodio",
- "drilldown" : "Paulo Custodio",
- "y" : 2
- },
- {
- "name" : "Roger Bell_West",
- "drilldown" : "Roger Bell_West",
- "y" : 4
- },
- {
- "drilldown" : "Simon Green",
- "y" : 3,
- "name" : "Simon Green"
- },
- {
- "name" : "Steven Wilson",
- "drilldown" : "Steven Wilson",
- "y" : 1
- },
- {
- "y" : 4,
- "drilldown" : "Stuart Little",
- "name" : "Stuart Little"
- },
- {
- "name" : "Vinod Kumar K",
- "y" : 1,
- "drilldown" : "Vinod Kumar K"
- },
- {
- "name" : "W. Luis Mochan",
- "drilldown" : "W. Luis Mochan",
- "y" : 3
- }
- ]
- }
- ],
- "plotOptions" : {
- "series" : {
- "dataLabels" : {
- "format" : "{point.y}",
- "enabled" : 1
- },
- "borderWidth" : 0
- }
- },
"drilldown" : {
"series" : [
{
- "id" : "Cheok-Yin Fung",
"data" : [
[
"Perl",
2
]
],
+ "id" : "Cheok-Yin Fung",
"name" : "Cheok-Yin Fung"
},
{
- "name" : "Dave Jacoby",
"data" : [
[
"Perl",
@@ -154,7 +22,8 @@
1
]
],
- "id" : "Dave Jacoby"
+ "id" : "Dave Jacoby",
+ "name" : "Dave Jacoby"
},
{
"data" : [
@@ -163,20 +32,22 @@
2
]
],
- "id" : "Duane Powell",
- "name" : "Duane Powell"
+ "name" : "Duane Powell",
+ "id" : "Duane Powell"
},
{
- "id" : "E. Choroba",
"data" : [
[
"Perl",
2
]
],
+ "id" : "E. Choroba",
"name" : "E. Choroba"
},
{
+ "name" : "Flavio Poletti",
+ "id" : "Flavio Poletti",
"data" : [
[
"Perl",
@@ -190,12 +61,11 @@
"Blog",
2
]
- ],
- "id" : "Flavio Poletti",
- "name" : "Flavio Poletti"
+ ]
},
{
"id" : "James Smith",
+ "name" : "James Smith",
"data" : [
[
"Perl",
@@ -205,8 +75,7 @@
"Blog",
1
]
- ],
- "name" : "James Smith"
+ ]
},
{
"data" : [
@@ -215,12 +84,10 @@
2
]
],
- "id" : "Jorg Sommrey",
- "name" : "Jorg Sommrey"
+ "name" : "Jorg Sommrey",
+ "id" : "Jorg Sommrey"
},
{
- "name" : "Lance Wicks",
- "id" : "Lance Wicks",
"data" : [
[
"Perl",
@@ -230,7 +97,9 @@
"Blog",
1
]
- ]
+ ],
+ "id" : "Lance Wicks",
+ "name" : "Lance Wicks"
},
{
"data" : [
@@ -247,12 +116,12 @@
1
]
],
- "id" : "Laurent Rosenfeld",
- "name" : "Laurent Rosenfeld"
+ "name" : "Laurent Rosenfeld",
+ "id" : "Laurent Rosenfeld"
},
{
- "name" : "Lucas Ransan",
"id" : "Lucas Ransan",
+ "name" : "Lucas Ransan",
"data" : [
[
"Raku",
@@ -261,36 +130,47 @@
]
},
{
- "name" : "Mohammad S Anwar",
- "id" : "Mohammad S Anwar",
"data" : [
[
"Perl",
1
]
- ]
+ ],
+ "name" : "Mohammad S Anwar",
+ "id" : "Mohammad S Anwar"
},
{
- "name" : "Niels van Dijke",
- "id" : "Niels van Dijke",
"data" : [
[
"Perl",
1
]
- ]
+ ],
+ "name" : "Niels van Dijke",
+ "id" : "Niels van Dijke"
},
{
+ "id" : "Paulo Custodio",
"name" : "Paulo Custodio",
"data" : [
[
"Perl",
2
]
- ],
- "id" : "Paulo Custodio"
+ ]
},
{
+ "name" : "Pete Houston",
+ "id" : "Pete Houston",
+ "data" : [
+ [
+ "Perl",
+ 2
+ ]
+ ]
+ },
+ {
+ "id" : "Roger Bell_West",
"name" : "Roger Bell_West",
"data" : [
[
@@ -305,11 +185,9 @@
"Blog",
1
]
- ],
- "id" : "Roger Bell_West"
+ ]
},
{
- "id" : "Simon Green",
"data" : [
[
"Perl",
@@ -320,17 +198,18 @@
1
]
],
+ "id" : "Simon Green",
"name" : "Simon Green"
},
{
+ "id" : "Steven Wilson",
+ "name" : "Steven Wilson",
"data" : [
[
"Perl",
1
]
- ],
- "id" : "Steven Wilson",
- "name" : "Steven Wilson"
+ ]
},
{
"data" : [
@@ -353,10 +232,11 @@
1
]
],
- "id" : "Vinod Kumar K",
- "name" : "Vinod Kumar K"
+ "name" : "Vinod Kumar K",
+ "id" : "Vinod Kumar K"
},
{
+ "name" : "W. Luis Mochan",
"id" : "W. Luis Mochan",
"data" : [
[
@@ -367,15 +247,150 @@
"Blog",
1
]
- ],
- "name" : "W. Luis Mochan"
+ ]
}
]
},
- "chart" : {
- "type" : "column"
+ "plotOptions" : {
+ "series" : {
+ "borderWidth" : 0,
+ "dataLabels" : {
+ "format" : "{point.y}",
+ "enabled" : 1
+ }
+ }
+ },
+ "legend" : {
+ "enabled" : 0
+ },
+ "yAxis" : {
+ "title" : {
+ "text" : "Total Solutions"
+ }
+ },
+ "series" : [
+ {
+ "data" : [
+ {
+ "y" : 2,
+ "drilldown" : "Cheok-Yin Fung",
+ "name" : "Cheok-Yin Fung"
+ },
+ {
+ "name" : "Dave Jacoby",
+ "drilldown" : "Dave Jacoby",
+ "y" : 3
+ },
+ {
+ "drilldown" : "Duane Powell",
+ "name" : "Duane Powell",
+ "y" : 2
+ },
+ {
+ "y" : 2,
+ "name" : "E. Choroba",
+ "drilldown" : "E. Choroba"
+ },
+ {
+ "y" : 6,
+ "drilldown" : "Flavio Poletti",
+ "name" : "Flavio Poletti"
+ },
+ {
+ "y" : 3,
+ "drilldown" : "James Smith",
+ "name" : "James Smith"
+ },
+ {
+ "y" : 2,
+ "name" : "Jorg Sommrey",
+ "drilldown" : "Jorg Sommrey"
+ },
+ {
+ "y" : 2,
+ "drilldown" : "Lance Wicks",
+ "name" : "Lance Wicks"
+ },
+ {
+ "drilldown" : "Laurent Rosenfeld",
+ "name" : "Laurent Rosenfeld",
+ "y" : 3
+ },
+ {
+ "y" : 2,
+ "drilldown" : "Lucas Ransan",
+ "name" : "Lucas Ransan"
+ },
+ {
+ "name" : "Mohammad S Anwar",
+ "drilldown" : "Mohammad S Anwar",
+ "y" : 1
+ },
+ {
+ "y" : 1,
+ "name" : "Niels van Dijke",
+ "drilldown" : "Niels van Dijke"
+ },
+ {
+ "y" : 2,
+ "drilldown" : "Paulo Custodio",
+ "name" : "Paulo Custodio"
+ },
+ {
+ "y" : 2,
+ "name" : "Pete Houston",
+ "drilldown" : "Pete Houston"
+ },
+ {
+ "drilldown" : "Roger Bell_West",
+ "name" : "Roger Bell_West",
+ "y" : 4
+ },
+ {
+ "y" : 3,
+ "drilldown" : "Simon Green",
+ "name" : "Simon Green"
+ },
+ {
+ "name" : "Steven Wilson",
+ "drilldown" : "Steven Wilson",
+ "y" : 1
+ },
+ {
+ "drilldown" : "Stuart Little",
+ "name" : "Stuart Little",
+ "y" : 4
+ },
+ {
+ "name" : "Vinod Kumar K",
+ "drilldown" : "Vinod Kumar K",
+ "y" : 1
+ },
+ {
+ "y" : 3,
+ "name" : "W. Luis Mochan",
+ "drilldown" : "W. Luis Mochan"
+ }
+ ],
+ "colorByPoint" : 1,
+ "name" : "Perl Weekly Challenge - 118"
+ }
+ ],
+ "tooltip" : {
+ "headerFormat" : "<span style='font-size:11px'>{series.name}</span><br/>",
+ "followPointer" : 1,
+ "pointFormat" : "<span style='color:{point.color}'>{point.name}</span>: <b>{point.y:f}</b><br/>"
+ },
+ "xAxis" : {
+ "type" : "category"
+ },
+ "title" : {
+ "text" : "Perl Weekly Challenge - 118"
},
"subtitle" : {
- "text" : "[Champions: 19] Last updated at 2021-06-25 18:52:56 GMT"
+ "text" : "[Champions: 20] Last updated at 2021-06-25 18:59:43 GMT"
+ },
+ "chart" : {
+ "type" : "column"
}
}
diff --git a/stats/pwc-language-breakdown-summary.json b/stats/pwc-language-breakdown-summary.json
index e3590c8ed0..d57f49ce45 100644
--- a/stats/pwc-language-breakdown-summary.json
+++ b/stats/pwc-language-breakdown-summary.json
@@ -1,9 +1,24 @@
{
+ "xAxis" : {
+ "type" : "category",
+ "labels" : {
+ "style" : {
+ "fontFamily" : "Verdana, sans-serif",
+ "fontSize" : "13px"
+ }
+ }
+ },
+ "tooltip" : {
+ "pointFormat" : "<b>{point.y:.0f}</b>"
+ },
"chart" : {
"type" : "column"
},
"subtitle" : {
- "text" : "Last updated at 2021-06-25 18:52:56 GMT"
+ "text" : "Last updated at 2021-06-25 18:59:43 GMT"
+ },
+ "title" : {
+ "text" : "Perl Weekly Challenge Contributions [2019 - 2020]"
},
"series" : [
{
@@ -14,7 +29,7 @@
],
[
"Perl",
- 5599
+ 5601
],
[
"Raku",
@@ -22,32 +37,20 @@
]
],
"dataLabels" : {
- "color" : "#FFFFFF",
- "y" : 10,
- "rotation" : -90,
"format" : "{point.y:.0f}",
+ "y" : 10,
+ "color" : "#FFFFFF",
"style" : {
"fontFamily" : "Verdana, sans-serif",
"fontSize" : "13px"
},
+ "rotation" : -90,
"align" : "right",
"enabled" : "true"
},
"name" : "Contributions"
}
],
- "title" : {
- "text" : "Perl Weekly Challenge Contributions [2019 - 2020]"
- },
- "xAxis" : {
- "labels" : {
- "style" : {
- "fontFamily" : "Verdana, sans-serif",
- "fontSize" : "13px"
- }
- },
- "type" : "category"
- },
"yAxis" : {
"min" : 0,
"title" : {
@@ -56,8 +59,5 @@
},
"legend" : {
"enabled" : "false"
- },
- "tooltip" : {
- "pointFormat" : "<b>{point.y:.0f}</b>"
}
}
diff --git a/stats/pwc-language-breakdown.json b/stats/pwc-language-breakdown.json
index be35a700c4..56456356e2 100644
--- a/stats/pwc-language-breakdown.json
+++ b/stats/pwc-language-breakdown.json
@@ -1,9 +1,4 @@
{
- "tooltip" : {
- "followPointer" : "true",
- "headerFormat" : "<span style=\"font-size:11px\"></span>",
- "pointFormat" : "<span style=\"color:{point.color}\">Challenge {point.name}</span>: <b>{point.y:f}</b><br/>"
- },
"legend" : {
"enabled" : "false"
},
@@ -12,15 +7,608 @@
"text" : "Total Solutions"
}
},
- "xAxis" : {
- "type" : "category"
- },
- "title" : {
- "text" : "Perl Weekly Challenge Language"
- },
+ "series" : [
+ {
+ "data" : [
+ {
+ "y" : 161,
+ "drilldown" : "001",
+ "name" : "#001"
+ },
+ {
+ "y" : 125,
+ "name" : "#002",
+ "drilldown" : "002"
+ },
+ {
+ "name" : "#003",
+ "drilldown" : "003",
+ "y" : 81
+ },
+ {
+ "y" : 99,
+ "drilldown" : "004",
+ "name" : "#004"
+ },
+ {
+ "name" : "#005",
+ "drilldown" : "005",
+ "y" : 78
+ },
+ {
+ "y" : 58,
+ "name" : "#006",
+ "drilldown" : "006"
+ },
+ {
+ "name" : "#007",
+ "drilldown" : "007",
+ "y" : 64
+ },
+ {
+ "drilldown" : "008",
+ "name" : "#008",
+ "y" : 78
+ },
+ {
+ "drilldown" : "009",
+ "name" : "#009",
+ "y" : 76
+ },
+ {
+ "drilldown" : "010",
+ "name" : "#010",
+ "y" : 65
+ },
+ {
+ "y" : 85,
+ "drilldown" : "011",
+ "name" : "#011"
+ },
+ {
+ "y" : 89,
+ "drilldown" : "012",
+ "name" : "#012"
+ },
+ {
+ "drilldown" : "013",
+ "name" : "#013",
+ "y" : 85
+ },
+ {
+ "name" : "#014",
+ "drilldown" : "014",
+ "y" : 101
+ },
+ {
+ "y" : 99,
+ "drilldown" : "015",
+ "name" : "#015"
+ },
+ {
+ "y" : 71,
+ "drilldown" : "016",
+ "name" : "#016"
+ },
+ {
+ "y" : 84,
+ "drilldown" : "017",
+ "name" : "#017"
+ },
+ {
+ "y" : 81,
+ "name" : "#018",
+ "drilldown" : "018"
+ },
+ {
+ "y" : 103,
+ "name" : "#019",
+ "drilldown" : "019"
+ },
+ {
+ "y" : 101,
+ "drilldown" : "020",
+ "name" : "#020"
+ },
+ {
+ "name" : "#021",
+ "drilldown" : "021",
+ "y" : 72
+ },
+ {
+ "y" : 68,
+ "name" : "#022",
+ "drilldown" : "022"
+ },
+ {
+ "name" : "