diff options
| author | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2021-06-25 20:00:53 +0100 |
|---|---|---|
| committer | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2021-06-25 20:00:53 +0100 |
| commit | 0b3e22eaa7919c245aafaefd724b8cfd7fcb612d (patch) | |
| tree | e0d2e48c568522498e0bd1f647d803452490d1f2 | |
| parent | 19f668d40162fb8dc37627310b4572bdcece593c (diff) | |
| download | perlweeklychallenge-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.pl | 28 | ||||
| -rw-r--r-- | challenge-118/pete-houston/perl/ch-2.pl | 260 | ||||
| -rw-r--r-- | stats/pwc-current.json | 357 | ||||
| -rw-r--r-- | stats/pwc-language-breakdown-summary.json | 40 | ||||
| -rw-r--r-- | stats/pwc-language-breakdown.json | 1662 | ||||
| -rw-r--r-- | stats/pwc-leaders.json | 372 | ||||
| -rw-r--r-- | stats/pwc-summary-1-30.json | 32 | ||||
| -rw-r--r-- | stats/pwc-summary-121-150.json | 96 | ||||
| -rw-r--r-- | stats/pwc-summary-151-180.json | 46 | ||||
| -rw-r--r-- | stats/pwc-summary-181-210.json | 36 | ||||
| -rw-r--r-- | stats/pwc-summary-211-240.json | 86 | ||||
| -rw-r--r-- | stats/pwc-summary-31-60.json | 102 | ||||
| -rw-r--r-- | stats/pwc-summary-61-90.json | 100 | ||||
| -rw-r--r-- | stats/pwc-summary-91-120.json | 42 | ||||
| -rw-r--r-- | stats/pwc-summary.json | 46 |
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" : " |
