aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobbie Hatley <Hatley.Software@gmail.com>2024-08-07 02:02:33 -0700
committerGitHub <noreply@github.com>2024-08-07 02:02:33 -0700
commitefc8bcd5f309459767078679099e7e0814104fb5 (patch)
treeeea7df7784d53b6e29ee2311321a45a8d4ccac3d
parent8c9cab31702d81d93ef9b97ab662d6b521cb7ade (diff)
parent94b9145b09c9801d2400771d37e7a7ee85dacfda (diff)
downloadperlweeklychallenge-club-efc8bcd5f309459767078679099e7e0814104fb5.tar.gz
perlweeklychallenge-club-efc8bcd5f309459767078679099e7e0814104fb5.tar.bz2
perlweeklychallenge-club-efc8bcd5f309459767078679099e7e0814104fb5.zip
Merge branch 'manwar:master' into rh281
-rwxr-xr-xchallenge-281/eric-cheung/python/ch-1.py15
-rwxr-xr-xchallenge-281/eric-cheung/python/ch-2.py113
-rwxr-xr-xchallenge-281/packy-anderson/elixir/ch-2.exs124
-rwxr-xr-xchallenge-281/packy-anderson/perl/ch-2.pl2
-rwxr-xr-xchallenge-281/packy-anderson/python/ch-2.py2
-rwxr-xr-xchallenge-281/packy-anderson/raku/ch-2.raku2
-rw-r--r--stats/pwc-current.json347
-rw-r--r--stats/pwc-language-breakdown-2019.json638
-rw-r--r--stats/pwc-language-breakdown-2020.json390
-rw-r--r--stats/pwc-language-breakdown-2021.json774
-rw-r--r--stats/pwc-language-breakdown-2022.json414
-rw-r--r--stats/pwc-language-breakdown-2023.json390
-rw-r--r--stats/pwc-language-breakdown-2024.json260
-rw-r--r--stats/pwc-language-breakdown-summary.json84
-rw-r--r--stats/pwc-leaders.json382
-rw-r--r--stats/pwc-summary-1-30.json54
-rw-r--r--stats/pwc-summary-121-150.json106
-rw-r--r--stats/pwc-summary-151-180.json50
-rw-r--r--stats/pwc-summary-181-210.json34
-rw-r--r--stats/pwc-summary-211-240.json90
-rw-r--r--stats/pwc-summary-241-270.json98
-rw-r--r--stats/pwc-summary-271-300.json34
-rw-r--r--stats/pwc-summary-301-330.json34
-rw-r--r--stats/pwc-summary-31-60.json106
-rw-r--r--stats/pwc-summary-61-90.json46
-rw-r--r--stats/pwc-summary-91-120.json34
-rw-r--r--stats/pwc-summary.json50
-rw-r--r--stats/pwc-yearly-language-summary.json100
28 files changed, 2514 insertions, 2259 deletions
diff --git a/challenge-281/eric-cheung/python/ch-1.py b/challenge-281/eric-cheung/python/ch-1.py
new file mode 100755
index 0000000000..22bdbb6e1b
--- /dev/null
+++ b/challenge-281/eric-cheung/python/ch-1.py
@@ -0,0 +1,15 @@
+
+arrX_Coor = ["a", "b", "c", "d", "e", "f", "g", "h"]
+arrY_Coor = [nLoop for nLoop in range(1, 9)]
+
+## print (arrX_Coor)
+## print (arrY_Coor)
+
+## strCoord = "d3" ## Example 1
+## strCoord = "g5" ## Example 2
+strCoord = "e6" ## Example 3
+
+## Ref.
+## True: Light
+## False: Dark
+print (arrX_Coor.index(strCoord[0]) % 2 == 1 or arrY_Coor.index(int(strCoord[1])) % 2 == 1)
diff --git a/challenge-281/eric-cheung/python/ch-2.py b/challenge-281/eric-cheung/python/ch-2.py
new file mode 100755
index 0000000000..d665d4e730
--- /dev/null
+++ b/challenge-281/eric-cheung/python/ch-2.py
@@ -0,0 +1,113 @@
+
+## Ref.
+## https://www.geeksforgeeks.org/minimum-steps-reach-target-knight-set-2/
+
+## Min Steps For A Knight to Reach Target Position
+
+## Initialize the Matrix
+arrKnightMove = [[0 for nRowLoop in range(8)] for nColLoop in range(8)]
+
+## Size of Chess Board nBoardSize * nBoardSize
+nBoardSize = 8
+
+arrX_Coor = ["a", "b", "c", "d", "e", "f", "g", "h"]
+arrY_Coor = [str(nLoop) for nLoop in range(1, 9)]
+
+def GetStepMove (nStartPos_X, nStartPos_Y, nTargetPos_X, nTargetPos_Y):
+
+ ## Exception
+ ## These are the four corner points
+ ## for which the minimum steps is 4
+
+ if nStartPos_X == 1 and nStartPos_Y == 1 and nTargetPos_X == 2 and nTargetPos_Y == 2 or nStartPos_X == 2 and nStartPos_Y == 2 and nTargetPos_X == 1 and nTargetPos_Y == 1:
+ return 4
+
+ if nStartPos_X == 1 and nStartPos_Y == nBoardSize and nTargetPos_X == 2 and nTargetPos_Y == nBoardSize - 1 or nStartPos_X == 2 and nStartPos_Y == nBoardSize - 1 and nTargetPos_X == 1 and nTargetPos_Y == nBoardSize:
+ return 4
+
+ if nStartPos_X == nBoardSize and nStartPos_Y == 1 and nTargetPos_X == nBoardSize - 1 and nTargetPos_Y == 2 or nStartPos_X == nBoardSize - 1 and nStartPos_Y == 2 and nTargetPos_X == nBoardSize and nTargetPos_Y == 1:
+ return 4
+
+ if nStartPos_X == nBoardSize and nStartPos_Y == nBoardSize and nTargetPos_X == nBoardSize - 1 and nTargetPos_Y == nBoardSize - 1 or nStartPos_X == nBoardSize - 1 and nStartPos_Y == nBoardSize - 1 and nTargetPos_X == nBoardSize and nTargetPos_Y == nBoardSize:
+ return 4
+
+ ## If Knight is on the target, position return 0
+ if nStartPos_X == nTargetPos_X and nStartPos_Y == nTargetPos_Y:
+ return arrKnightMove[0][0]
+
+ ## If already calculated, then return that value. Take absolute difference
+ nAbsDiff_X = abs(nStartPos_X - nTargetPos_X)
+ nAbsDiff_Y = abs(nStartPos_Y - nTargetPos_Y)
+
+ if arrKnightMove[nAbsDiff_X][nAbsDiff_Y] != 0:
+ return arrKnightMove[nAbsDiff_X][nAbsDiff_Y]
+
+ ## There will be two distinct positions
+ ## from the knight towards a target
+ ## if the target is in same row or column
+ ## as of knight then there can be four
+ ## positions towards the target but in that
+ ## two would be the same and the other two
+ ## would be the same.
+ nInterPos_01_X, nInterPos_01_Y, nInterPos_02_X, nInterPos_02_Y = 0, 0, 0, 0
+
+ ## (nInterPos_01_X, nInterPos_01_Y) and (nInterPos_02_X, nInterPos_02_Y) are two positions.
+ ## these can be different according to situation.
+ ## From position of knight, the chess board can be
+ ## divided into four blocks i.e.. N-E, E-S, S-W, W-N
+ if nStartPos_X <= nTargetPos_X:
+ nInterPos_01_X = nStartPos_X + 2
+ nInterPos_02_X = nStartPos_X + 1
+ else:
+ nInterPos_01_X = nStartPos_X - 2
+ nInterPos_02_X = nStartPos_X - 1
+
+ if nStartPos_Y <= nTargetPos_Y:
+ nInterPos_01_Y = nStartPos_Y + 1
+ nInterPos_02_Y = nStartPos_Y + 2
+ else:
+ nInterPos_01_Y = nStartPos_Y - 1
+ nInterPos_02_Y = nStartPos_Y - 2
+
+ ## Answer will be, 1 + minimum of steps
+ ## required from (nInterPos_01_X, nInterPos_01_Y) and (nInterPos_02_X, nInterPos_02_Y)
+ arrKnightMove[nAbsDiff_X][nAbsDiff_Y] = min(GetStepMove(nInterPos_01_X, nInterPos_01_Y, nTargetPos_X, nTargetPos_Y), GetStepMove(nInterPos_02_X, nInterPos_02_Y, nTargetPos_X, nTargetPos_Y)) + 1
+
+ ## exchanging the coordinates nStartPos_X with nStartPos_Y of both
+ ## knight and target will result in same answer
+ arrKnightMove[nAbsDiff_Y][nAbsDiff_X] = arrKnightMove[nAbsDiff_X][nAbsDiff_Y]
+
+ return arrKnightMove[nAbsDiff_X][nAbsDiff_Y]
+
+
+## Driver Code
+if __name__ == "__main__":
+
+ ## (nStartPos_X, nStartPos_Y) coordinate of the Knight Position
+ ## (nTargetPos_X, nTargetPos_Y) coordinate of the Target Position
+
+ ## Example 1
+ ## strStartPos = "g2"
+ ## strTargetPos = "a8"
+
+ ## Example 2
+ strStartPos = "g2"
+ strTargetPos = "h2"
+
+ nStartPos_X = arrX_Coor.index(strStartPos[0]) + 1
+ nStartPos_Y = arrY_Coor.index(strStartPos[1]) + 1
+
+ nTargetPos_X = arrX_Coor.index(strTargetPos[0]) + 1
+ nTargetPos_Y = arrY_Coor.index(strTargetPos[1]) + 1
+
+ ## arrKnightMove[a][b], here a, b is the difference of
+ ## nStartPos_X & nTargetPos_X and nStartPos_Y & nTargetPos_Y respectively
+ arrKnightMove[1][0] = 3
+ arrKnightMove[0][1] = 3
+ arrKnightMove[1][1] = 2
+ arrKnightMove[2][0] = 2
+ arrKnightMove[0][2] = 2
+ arrKnightMove[2][1] = 1
+ arrKnightMove[1][2] = 1
+
+ print (GetStepMove(nStartPos_X, nStartPos_Y, nTargetPos_X, nTargetPos_Y))
diff --git a/challenge-281/packy-anderson/elixir/ch-2.exs b/challenge-281/packy-anderson/elixir/ch-2.exs
index 04b5c8529b..1009526549 100755
--- a/challenge-281/packy-anderson/elixir/ch-2.exs
+++ b/challenge-281/packy-anderson/elixir/ch-2.exs
@@ -1,20 +1,128 @@
#!/usr/bin/env elixir
defmodule PWC do
+ defp letterAdd(letter, add) do
+ <<val::utf8>> = letter
+ List.to_string([val + add])
+ end
+
+ def onBoard(c,r) do
+ "a" <= c and c <= "h" and 1 <= r and r <= 8
+ end
+
+ defp knightMoveList(), do: [
+ {-2, -1}, {-2, +1}, {-1, -2}, {-1, +2},
+ {+2, -1}, {+2, +1}, {+1, -2}, {+1, +2},
+ ]
+
+ def knightMoves([], _, _, endpoints), do: endpoints
+
+ def knightMoves([next | rest], letter, num, endpoints) do
+ {col, row} = next
+ newcol = letterAdd(letter, col)
+ newrow = num + row
+ endpoints = if onBoard(newcol,newrow) do
+ # add to list being returned
+ endpoints ++ [ newcol <> to_string(newrow) ]
+ else
+ endpoints
+ end
+ knightMoves(rest, letter, num, endpoints)
+ end
+
+ def knightMoves(coordinates) do
+ letter = String.first(coordinates)
+ {num, _} = Integer.parse(String.last(coordinates))
+ knightMoves(knightMoveList(), letter, num, [])
+ end
+
+ def processEndpoints(
+ next, params = %{
+ moves_to: moves_to,
+ path_to: path_to,
+ startPos: startPos,
+ endPos: endPos,
+ queue: queue
+ }
+ ) do
+ # update the move count map
+ moves_to = Map.put(moves_to, next, moves_to[startPos] + 1)
+
+ # update the path to current space map
+ path_to = Map.put(path_to, next,
+ "#{path_to[startPos]} -> #{next}"
+ )
+
+ if next == endPos do
+ # we found the shortest path, update the return
+ # values which will stop the loop
+ %{ moves: moves_to[next], path: path_to[next] }
+ else
+ # update params for next iteration
+ params |> Map.put(:moves_to, moves_to)
+ |> Map.put(:path_to, path_to)
+ |> Map.put(:queue, queue ++ [ next ])
+ end
+ end
+
+ def processEndpoints(_, params = %{moves: moves})
+ when not is_nil(moves), do: params
+
+ # we've exhausted the queue
+ # (only possible when the chessboard is an odd size)
+ def processQueue([], _), do: %{
+ moves: -1, path: "no path found"
+ }
+
+ def processQueue(_, params = %{moves: moves})
+ when not is_nil(moves), do: params
+
+ def processQueue([startPos | queue], params = %{
+ path_to: path_to
+ }) do
+ # put the current starting position and the current queue
+ # into the params
+ params = params |> Map.put(:queue, queue)
+ |> Map.put(:startPos, startPos)
+
+ # figure out the valid moves that we haven't been to yet
+ endpoints = knightMoves(startPos)
+ |> Enum.filter(fn m -> !Map.has_key?(path_to, m) end)
+
+ # call processEndpoints/2 for each of the endpoints
+ params = Enum.reduce(endpoints, params, &processEndpoints/2)
+
+ # recursively call to process the rest of the queue
+ processQueue(params[:queue], params)
+ end
+
+ # trivial case: we're already at the end point
+ def leastMoves(startPos, endPos) when startPos == endPos, do:
+ { 0, endPos }
+
+ def leastMoves(startPos, endPos) do
+ params = processQueue([ startPos ], %{
+ endPos: endPos,
+ moves_to: %{ startPos => 0 },
+ path_to: %{ startPos => startPos },
+ moves: nil,
+ path: nil
+ })
+ { params[:moves], params[:path] }
+ end
- def solution(ints) do
- IO.puts("Input: @ints = (" <> Enum.join(ints, ", ") <> ")")
- {sign, explain} = PWC.productSign(ints)
- IO.puts("Output: " <> to_string(sign) )
- IO.puts("\n" <> explain)
+ def solution(startPos, endPos) do
+ IO.puts("Input: $start = '#{startPos}', $end = '#{endPos}'")
+ {count, moves} = leastMoves(startPos, endPos)
+ IO.puts("Output: #{to_string(count)}\n\n#{moves}" )
end
end
IO.puts("Example 1:")
-PWC.solution()
+PWC.solution("g2", "a8")
IO.puts("\nExample 2:")
-PWC.solution()
+PWC.solution("g2", "h2")
IO.puts("\nExample 3:")
-PWC.solution()
+PWC.solution("a1", "h8")
diff --git a/challenge-281/packy-anderson/perl/ch-2.pl b/challenge-281/packy-anderson/perl/ch-2.pl
index 92eeb1cbd4..3992136a60 100755
--- a/challenge-281/packy-anderson/perl/ch-2.pl
+++ b/challenge-281/packy-anderson/perl/ch-2.pl
@@ -68,7 +68,7 @@ sub solution($start, $end) {
say qq/Input: \$start = '$start', \$end = '$end'/;
my ($count, $moves) = leastMoves($start, $end);
say 'Output: ' . $count;
- say "\n$moves\n";
+ say "\n$moves";
}
say "Example 1:";
diff --git a/challenge-281/packy-anderson/python/ch-2.py b/challenge-281/packy-anderson/python/ch-2.py
index f1b8803a71..72f51c823f 100755
--- a/challenge-281/packy-anderson/python/ch-2.py
+++ b/challenge-281/packy-anderson/python/ch-2.py
@@ -65,7 +65,7 @@ def leastMoves(start, end):
def solution(start, end):
print(f'Input: $start = \'{start}\', $end = \'{end}\'')
count, moves = leastMoves(start, end)
- print(f'Output: {count}\n\n{moves}\n')
+ print(f'Output: {count}\n\n{moves}')
print('Example 1:')
solution('g2', 'a8')
diff --git a/challenge-281/packy-anderson/raku/ch-2.raku b/challenge-281/packy-anderson/raku/ch-2.raku
index 4ab5b7f4b1..ed29559b0a 100755
--- a/challenge-281/packy-anderson/raku/ch-2.raku
+++ b/challenge-281/packy-anderson/raku/ch-2.raku
@@ -68,7 +68,7 @@ sub solution($start, $end) {
say qq/Input: \$start = '$start', \$end = '$end'/;
my ($count, $moves) = leastMoves($start, $end);
say 'Output: ' ~ $count;
- say "\n$moves\n";
+ say "\n$moves";
}
say "Example 1:";
diff --git a/stats/pwc-current.json b/stats/pwc-current.json
index af688e0780..7ff509be34 100644
--- a/stats/pwc-current.json
+++ b/stats/pwc-current.json
@@ -1,7 +1,141 @@
{
+ "tooltip" : {
+ "followPointer" : 1,
+ "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/>"
+ },
+ "series" : [
+ {
+ "name" : "The Weekly Challenge - 281",
+ "colorByPoint" : 1,
+ "data" : [
+ {
+ "name" : "Alexander Karelas",
+ "drilldown" : "Alexander Karelas",
+ "y" : 2
+ },
+ {
+ "drilldown" : "Dave Jacoby",
+ "name" : "Dave Jacoby",
+ "y" : 3
+ },
+ {
+ "drilldown" : "David Ferrone",
+ "y" : 2,
+ "name" : "David Ferrone"
+ },
+ {
+ "y" : 2,
+ "drilldown" : "E. Choroba",
+ "name" : "E. Choroba"
+ },
+ {
+ "name" : "Feng Chang",
+ "drilldown" : "Feng Chang",
+ "y" : 2
+ },
+ {
+ "y" : 2,
+ "drilldown" : "Jan Krnavek",
+ "name" : "Jan Krnavek"
+ },
+ {
+ "y" : 2,
+ "drilldown" : "Kjetil Skotheim",
+ "name" : "Kjetil Skotheim"
+ },
+ {
+ "drilldown" : "Laurent Rosenfeld",
+ "name" : "Laurent Rosenfeld",
+ "y" : 3
+ },
+ {
+ "drilldown" : "Mariano Ortega",
+ "name" : "Mariano Ortega",
+ "y" : 2
+ },
+ {
+ "drilldown" : "Mark Anderson",
+ "name" : "Mark Anderson",
+ "y" : 2
+ },
+ {
+ "y" : 5,
+ "drilldown" : "Packy Anderson",
+ "name" : "Packy Anderson"
+ },
+ {
+ "drilldown" : "Peter Campbell Smith",
+ "y" : 3,
+ "name" : "Peter Campbell Smith"
+ },
+ {
+ "drilldown" : "Peter Meszaros",
+ "name" : "Peter Meszaros",
+ "y" : 2
+ },
+ {
+ "y" : 3,
+ "drilldown" : "Robbie Hatley",
+ "name" : "Robbie Hatley"
+ },
+ {
+ "y" : 4,
+ "drilldown" : "Roger Bell_West",
+ "name" : "Roger Bell_West"
+ },
+ {
+ "drilldown" : "Thomas Kohler",
+ "name" : "Thomas Kohler",
+ "y" : 4
+ },
+ {
+ "drilldown" : "Ulrich Rieke",
+ "y" : 4,
+ "name" : "Ulrich Rieke"
+ },
+ {
+ "drilldown" : "W. Luis Mochan",
+ "y" : 3,
+ "name" : "W. Luis Mochan"
+ },
+ {
+ "drilldown" : "Wanderdoc",
+ "name" : "Wanderdoc",
+ "y" : 2
+ }
+ ]
+ }
+ ],
+ "xAxis" : {
+ "type" : "category"
+ },
+ "plotOptions" : {
+ "series" : {
+ "dataLabels" : {
+ "enabled" : 1,
+ "format" : "{point.y}"
+ },
+ "borderWidth" : 0
+ }
+ },
"title" : {
"text" : "The Weekly Challenge - 281"
},
+ "yAxis" : {
+ "title" : {
+ "text" : "Total Solutions"
+ }
+ },
+ "legend" : {
+ "enabled" : 0
+ },
+ "subtitle" : {
+ "text" : "[Champions: 19] Last updated at 2024-08-07 08:56:24 GMT"
+ },
+ "chart" : {
+ "type" : "column"
+ },
"drilldown" : {
"series" : [
{
@@ -11,10 +145,12 @@
2
]
],
- "id" : "Alexander Karelas",
- "name" : "Alexander Karelas"
+ "name" : "Alexander Karelas",
+ "id" : "Alexander Karelas"
},
{
+ "name" : "Dave Jacoby",
+ "id" : "Dave Jacoby",
"data" : [
[
"Perl",
@@ -24,62 +160,59 @@
"Blog",
1
]
- ],
- "id" : "Dave Jacoby",
- "name" : "Dave Jacoby"
+ ]
},
{
+ "name" : "David Ferrone",
"id" : "David Ferrone",
"data" : [
[
"Perl",
2
]
- ],
- "name" : "David Ferrone"
+ ]
},
{
"name" : "E. Choroba",
+ "id" : "E. Choroba",
"data" : [
[
"Perl",
2
]
- ],
- "id" : "E. Choroba"
+ ]
},
{
+ "name" : "Feng Chang",
+ "id" : "Feng Chang",
"data" : [
[
"Raku",
2
]
- ],
- "name" : "Feng Chang",
- "id" : "Feng Chang"
+ ]
},
{
- "name" : "Jan Krnavek",
"data" : [
[
"Raku",
2
]
],
+ "name" : "Jan Krnavek",
"id" : "Jan Krnavek"
},
{
+ "name" : "Kjetil Skotheim",
+ "id" : "Kjetil Skotheim",
"data" : [
[
"Perl",
2
]
- ],
- "name" : "Kjetil Skotheim",
- "id" : "Kjetil Skotheim"
+ ]
},
{
- "id" : "Laurent Rosenfeld",
"data" : [
[
"Perl",
@@ -94,30 +227,30 @@
1
]
],
+ "id" : "Laurent Rosenfeld",
"name" : "Laurent Rosenfeld"
},
{
- "id" : "Mariano Ortega",
"data" : [
[
"Perl",
2
]
],
+ "id" : "Mariano Ortega",
"name" : "Mariano Ortega"
},
{
"name" : "Mark Anderson",
+ "id" : "Mark Anderson",
"data" : [
[
"Raku",
2
]
- ],
- "id" : "Mark Anderson"
+ ]
},
{
- "id" : "Packy Anderson",
"data" : [
[
"Perl",
@@ -132,10 +265,10 @@
1
]
],
- "name" : "Packy Anderson"
+ "name" : "Packy Anderson",
+ "id" : "Packy Anderson"
},
{
- "name" : "Peter Campbell Smith",
"data" : [
[
"Perl",
@@ -146,20 +279,34 @@
1
]
],
+ "name" : "Peter Campbell Smith",
"id" : "Peter Campbell Smith"
},
{
- "name" : "Peter Meszaros",
"data" : [
[
"Perl",
2
]
],
- "id" : "Peter Meszaros"
+ "id" : "Peter Meszaros",
+ "name" : "Peter Meszaros"
+ },
+ {
+ "name" : "Robbie Hatley",
+ "id" : "Robbie Hatley",
+ "data" : [
+ [
+ "Perl",
+ 2
+ ],
+ [
+ "Blog",
+ 1
+ ]
+ ]
},
{
- "id" : "Roger Bell_West",
"data" : [
[
"Perl",
@@ -170,10 +317,10 @@
2
]
],
- "name" : "Roger Bell_West"
+ "name" : "Roger Bell_West",
+ "id" : "Roger Bell_West"
},
{
- "name" : "Thomas Kohler",
"data" : [
[
"Perl",
@@ -184,9 +331,11 @@
2
]
],
- "id" : "Thomas Kohler"
+ "id" : "Thomas Kohler",
+ "name" : "Thomas Kohler"
},
{
+ "name" : "Ulrich Rieke",
"id" : "Ulrich Rieke",
"data" : [
[
@@ -197,11 +346,9 @@
"Raku",
2
]
- ],
- "name" : "Ulrich Rieke"
+ ]
},
{
- "id" : "W. Luis Mochan",
"data" : [
[
"Perl",
@@ -212,147 +359,19 @@
1
]
],
+ "id" : "W. Luis Mochan",
"name" : "W. Luis Mochan"
},
{
+ "id" : "Wanderdoc",
+ "name" : "Wanderdoc",
"data" : [
[
"Perl",
2
]
- ],
- "id" : "Wanderdoc",
- "name" : "Wanderdoc"
+ ]
}
]
- },
- "yAxis" : {
- "title" : {
- "text" : "Total Solutions"
- }
- },
- "subtitle" : {
- "text" : "[Champions: 18] Last updated at 2024-08-06 22:29:23 GMT"
- },
- "series" : [
- {
- "data" : [
- {
- "y" : 2,
- "drilldown" : "Alexander Karelas",
- "name" : "Alexander Karelas"
- },
- {
- "name" : "Dave Jacoby",
- "drilldown" : "Dave Jacoby",
- "y" : 3
- },
- {
- "y" : 2,
- "drilldown" : "David Ferrone",
- "name" : "David Ferrone"
- },
- {
- "y" : 2,
- "name" : "E. Choroba",
- "drilldown" : "E. Choroba"
- },
- {
- "drilldown" : "Feng Chang",
- "name" : "Feng Chang",
- "y" : 2
- },
- {
- "y" : 2,
- "drilldown" : "Jan Krnavek",
- "name" : "Jan Krnavek"
- },
- {
- "drilldown" : "Kjetil Skotheim",
- "name" : "Kjetil Skotheim",
- "y" : 2
- },
- {
- "name" : "Laurent Rosenfeld",
- "drilldown" : "Laurent Rosenfeld",
- "y" : 3
- },
- {
- "name" : "Mariano Ortega",
- "drilldown" : "Mariano Ortega",
- "y" : 2
- },
- {
- "name" : "Mark Anderson",
- "drilldown" : "Mark Anderson",
- "y" : 2
- },
- {
- "y" : 5,
- "drilldown" : "Packy Anderson",
- "name" : "Packy Anderson"
- },
- {
- "drilldown" : "Peter Campbell Smith",
- "name" : "Peter Campbell Smith",
- "y" : 3
- },
- {
- "y" : 2,
- "name" : "Peter Meszaros",
- "drilldown" : "Peter Meszaros"
- },
- {
- "y" : 4,
- "drilldown" : "Roger Bell_West",
- "name" : "Roger Bell_West"
- },
- {
- "y" : 4,
- "name" : "Thomas Kohler",
- "drilldown" : "Thomas Kohler"
- },
- {
- "drilldown" : "Ulrich Rieke",
- "name" : "Ulrich Rieke",
- "y" : 4
- },
- {
- "y" : 3,
- "name" : "W. Luis Mochan",
- "drilldown" : "W. Luis Mochan"
- },
- {
- "drilldown" : "Wanderdoc",
- "name" : "Wanderdoc",
- "y" : 2
- }
- ],
- "name" : "The Weekly Challenge - 281",
- "colorByPoint" : 1
- }
- ],
- "chart" : {
- "type" : "column"
- },
- "plotOptions" : {
- "series" : {
- "dataLabels" : {
- "format" : "{point.y}",
- "enabled" : 1
- },
- "borderWidth" : 0
- }
- },
- "legend" : {
- "enabled" : 0
- },
- "xAxis" : {
- "type" : "category"
- },
- "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
}
}
diff --git a/stats/pwc-language-breakdown-2019.json b/stats/pwc-language-breakdown-2019.json
index 8e542545fd..10f2296e38 100644
--- a/stats/pwc-language-breakdown-2019.json
+++ b/stats/pwc-language-breakdown-2019.json
@@ -1,240 +1,17 @@
{
- "plotOptions" : {
- "series" : {
- "dataLabels" : {
- "format" : "{point.y}",
- "enabled" : 1
- },
- "borderWidth" : 0
- }
+ "subtitle" : {
+ "text" : "Click the columns to drilldown the language breakdown. Last updated at 2024-08-07 08:56:24 GMT"
+ },
+ "legend" : {
+ "enabled" : "false"
},
"chart" : {
"type" : "column"
},
- "series" : [
- {
- "colorByPoint" : "true",
- "name" : "The Weekly Challenge Languages",
- "data" : [
- {
- "drilldown" : "041",
- "name" : "041",
- "