diff options
| -rw-r--r-- | challenge-162/ulrich-rieke/cpp/ch-1.cpp | 42 | ||||
| -rw-r--r-- | challenge-162/ulrich-rieke/haskell/ch-1.hs | 29 | ||||
| -rw-r--r-- | challenge-162/ulrich-rieke/haskell/ch-2.hs | 148 | ||||
| -rw-r--r-- | challenge-162/ulrich-rieke/perl/ch-1.pl | 30 | ||||
| -rw-r--r-- | challenge-162/ulrich-rieke/raku/ch-1.raku | 23 | ||||
| -rw-r--r-- | challenge-162/ulrich-rieke/raku/ch-2.raku | 199 | ||||
| -rw-r--r-- | stats/pwc-current.json | 303 | ||||
| -rw-r--r-- | stats/pwc-language-breakdown-summary.json | 68 | ||||
| -rw-r--r-- | stats/pwc-language-breakdown.json | 1144 | ||||
| -rw-r--r-- | stats/pwc-leaders.json | 738 | ||||
| -rw-r--r-- | stats/pwc-summary-1-30.json | 54 | ||||
| -rw-r--r-- | stats/pwc-summary-121-150.json | 108 | ||||
| -rw-r--r-- | stats/pwc-summary-151-180.json | 48 | ||||
| -rw-r--r-- | stats/pwc-summary-181-210.json | 34 | ||||
| -rw-r--r-- | stats/pwc-summary-211-240.json | 44 | ||||
| -rw-r--r-- | stats/pwc-summary-241-270.json | 84 | ||||
| -rw-r--r-- | stats/pwc-summary-31-60.json | 124 | ||||
| -rw-r--r-- | stats/pwc-summary-61-90.json | 124 | ||||
| -rw-r--r-- | stats/pwc-summary-91-120.json | 48 | ||||
| -rw-r--r-- | stats/pwc-summary.json | 40 |
20 files changed, 1961 insertions, 1471 deletions
diff --git a/challenge-162/ulrich-rieke/cpp/ch-1.cpp b/challenge-162/ulrich-rieke/cpp/ch-1.cpp new file mode 100644 index 0000000000..c4e833f850 --- /dev/null +++ b/challenge-162/ulrich-rieke/cpp/ch-1.cpp @@ -0,0 +1,42 @@ +#include <string> +#include <vector> +#include <iostream> + +std::vector<int> convert( std::string & numberstring ) { + std::vector<int> numbers ; + for ( int i = 0 ; i < numberstring.size( ) ; i++ ) { + if ( numberstring.substr( i , 1 ) != "-" ) { + numbers.push_back( std::stoi( numberstring.substr( i, 1) ) ) ; + } + } + return numbers ; +} + +int main( ) { + std::cout << "Please enter an ISBN string with only 12 digits!\n" ; + std::string isbn ; + std::cin >> isbn ; + std::string converted ( isbn ) ; + std::vector<int> numbers { convert( converted ) } ; + while ( numbers.size( ) != 12 ) { + std::cout << "Enter an ISBN with only 12 digits, for exercise purposes!\n" ; + std::cin >> isbn ; + converted = isbn ; + numbers = convert( converted ) ; + } + std::cout << std::endl ; + std::vector<int> multipliers ; + for ( int i = 0 ; i < 6 ; i++ ) { + multipliers.push_back( 1 ) ; + multipliers.push_back( 3 ) ; + } + int sum = 0 ; + for ( int i = 0 ; i < 12 ; i++ ) { + sum += *(numbers.begin( ) + i ) * *(multipliers.begin( ) + i) ; + } + int check = 10 - ( sum % 10 ) ; + if ( check == 10 ) + check == 0 ; + std::cout << "The ISBN is " << isbn << std::to_string( check ) << " !\n" ; + return 0 ; +} diff --git a/challenge-162/ulrich-rieke/haskell/ch-1.hs b/challenge-162/ulrich-rieke/haskell/ch-1.hs new file mode 100644 index 0000000000..b69da0ddb8 --- /dev/null +++ b/challenge-162/ulrich-rieke/haskell/ch-1.hs @@ -0,0 +1,29 @@ +module Challenge162 + where +import Data.Char ( digitToInt ) +import Data.List.Split ( splitOn ) + +askForISBN :: IO (String , String) +askForISBN = do + putStrLn "Enter an ISBN string, with 12 digits only!" + isbn <- getLine + let numberstrings = splitOn "-" isbn + totalNumber = foldl1 ( ++ ) numberstrings + if length totalNumber == 12 + then return (isbn , totalNumber) + else do + askForISBN + +multipliers :: [Int] +multipliers = take 12 $ cycle [1 , 3 ] + +findDigitStr :: String -> String +findDigitStr numberstring = if (10 - theSum) /= 0 then show (10 - theSum) else "0" +where + theSum :: Int + theSum = mod (sum $ zipWith ( + ) ( map digitToInt numberstring ) multipliers) 10 + +main :: IO ( ) +main = do + ( isbn , numbers ) <- askForISBN + putStrLn ("The complete ISBN is " ++ isbn ++ ( findDigitStr numbers) ++ " !") diff --git a/challenge-162/ulrich-rieke/haskell/ch-2.hs b/challenge-162/ulrich-rieke/haskell/ch-2.hs new file mode 100644 index 0000000000..f88666e6b8 --- /dev/null +++ b/challenge-162/ulrich-rieke/haskell/ch-2.hs @@ -0,0 +1,148 @@ +module Challenge162_2 + where +import Data.List.Split( chunksOf , splitOn ) +import Data.List ( elemIndex , nub , (!!) , (\\) , group , intercalate ) +import Data.Maybe ( fromJust ) + +makeGrid :: String -> String +makeGrid seedPhrase = phrase ++ ( alphabet \\ phrase ) +where + phrase :: String + phrase = nub $ foldl1 ( ++ ) $ splitOn " " seedPhrase + alphabet :: String + alphabet = ['a' .. 'i'] ++ ['k' .. 'z'] + +--given a position number , in which row of the grid are we ? +findRow :: Int -> Int +findRow n = div ( n - ( mod n 5 )) 5 + +--given a position number , in which column of the grid are we ? +findColumn :: Int -> Int +findColumn n = mod n 5 + +encodeOnSameRow :: String -> Char -> Char +encodeOnSameRow keyphrase letter = if findRow ( pos + 1 ) == findRow pos +then keyphrase !! ( pos + 1 ) else keyphrase !! ( pos - 4 ) +where + pos :: Int + pos = fromJust $ elemIndex letter keyphrase + +encodeOnSameColumn :: String -> Char -> Char +encodeOnSameColumn keyphrase letter + |pos + 5 > 25 = keyphrase !! ( mod pos 5 ) + |otherwise = keyphrase !! ( pos + 5 ) + where + pos :: Int + pos = fromJust $ elemIndex letter keyphrase + +encodeOnRectangle :: String -> String -> String +encodeOnRectangle keyPhrase toBeEncrypted = [keyPhrase !! ( row1 * 5 + col2 ), + keyPhrase !! (row2 * 5 + col1)] + where + pos1 :: Int + pos1 = fromJust $ elemIndex ( head toBeEncrypted ) keyPhrase + pos2 :: Int + pos2 = fromJust $ elemIndex ( last toBeEncrypted ) keyPhrase + row1 :: Int + row1 = findRow pos1 + row2 :: Int + row2 = findRow pos2 + col1 :: Int + col1 = findColumn pos1 + col2 :: Int + col2 = findColumn pos2 + +decodeOnSameRow :: String -> Char -> Char +decodeOnSameRow keyPhrase letter = if findRow ( pos - 1 ) == findRow pos +then keyPhrase !! ( pos - 1 ) else keyPhrase !! ( pos + 4 ) +where + pos :: Int + pos = fromJust $ elemIndex letter keyPhrase + +decodeOnSameColumn :: String -> Char -> Char +decodeOnSameColumn keyPhrase letter + |pos - 5 < 0 = keyPhrase !! ( 20 + findColumn pos ) + |otherwise = keyPhrase !! ( pos - 5 ) + where + pos :: Int + pos = fromJust $ elemIndex letter keyPhrase + +decodeOnRectangle :: String -> String -> String +decodeOnRectangle keyPhrase toBeDecrypted = [keyPhrase !! (row1 * 5 + col2) , +keyPhrase !! (row2 * 5 + col1)] +where + pos1 :: Int + pos1 = fromJust $ elemIndex ( head toBeDecrypted ) keyPhrase + pos2 :: Int + pos2 = fromJust $ elemIndex ( last toBeDecrypted ) keyPhrase + row1 :: Int + row1 = findRow pos1 + row2 :: Int + row2 = findRow pos2 + col1 :: Int + col1 = findColumn pos1 + col2 :: Int + col2 = findColumn pos2 + +substitute :: String -> Char -> Char -> String +substitute word from to = map (\c -> if c == from then to else c ) word + +insertAfterDoubleLetters :: String -> String +insertAfterDoubleLetters str = foldl1 ( ++ ) $ map (\li -> if length li > 1 +then intercalate "x" $ map (\c -> [c]) li else li) $ group str + +hackApart :: String -> [String] +hackApart word + |odd $ length word = map (\li -> if head li == last li then [head li , 'x'] + else li) $ chunksOf 2 ( word ++ ['x'] ) + |otherwise = map (\li -> if head li == last li then [head li , 'x'] else + li) $ chunksOf 2 word + +encrypt :: String -> String -> String +encrypt keyPhrase toBeEncrypted = foldl1 (++) $ map(\li -> encryptPair li ) $ +hackApart toBeEncrypted +where + encryptPair :: String -> String + encryptPair pair + |findColumn pos1 == findColumn pos2 = map (\c -> encodeOnSameColumn keyPhrase c) + pair + |findRow pos1 == findRow pos2 = map (\c -> encodeOnSameRow keyPhrase c) pair + |otherwise = encodeOnRectangle keyPhrase pair + where + pos1 :: Int + pos1 = fromJust $ elemIndex ( head pair ) keyPhrase + pos2 :: Int + pos2 = fromJust $ elemIndex ( last pair ) keyPhrase + +decrypt :: String -> String -> String +decrypt keyPhrase toBeDecrypted = foldl1 (++) $ map (\li -> decryptPair li ) $ +hackApart toBeDecrypted +where + decryptPair :: String -> String + decryptPair pair + |findColumn pos1 == findColumn pos2 = map (\c -> decodeOnSameColumn keyPhrase + c) pair + |findRow pos1 == findRow pos2 = map (\c -> decodeOnSameRow keyPhrase c ) pair + |otherwise = decodeOnRectangle keyPhrase pair + where + pos1 :: Int + pos1 = fromJust $ elemIndex ( head pair ) keyPhrase + pos2 :: Int + pos2 = fromJust $ elemIndex ( last pair ) keyPhrase + +main :: IO ( ) +main = do + putStrLn "Please enter a key phrase from which to construct the grid!" + phrase <- getLine + putStrLn "Which text do you want to encrypt?" + toBeEncrypted <- getLine + let grid = makeGrid phrase + toBeEncryptedRed = insertAfterDoubleLetters $ substitute ( foldl1 ( ++ ) + $ splitOn " " toBeEncrypted) 'j' 'i' + putStrLn toBeEncryptedRed + putStrLn $ encrypt grid toBeEncryptedRed + putStrLn "Enter another key phrase!" + secondPhrase <- getLine + putStrLn "Which text do you want to decrypt?" + toBeDecrypted <- getLine + putStrLn $ decrypt (makeGrid secondPhrase) toBeDecrypted diff --git a/challenge-162/ulrich-rieke/perl/ch-1.pl b/challenge-162/ulrich-rieke/perl/ch-1.pl new file mode 100644 index 0000000000..4156b11cd7 --- /dev/null +++ b/challenge-162/ulrich-rieke/perl/ch-1.pl @@ -0,0 +1,30 @@ +#!/usr/bin/perl ; +use strict ; +use warnings ; +use feature 'say' ; + +say "Enter an ISBN with only 12 digits!" ; +my $isbn = <STDIN> ; +chomp $isbn ; +my $converted = $isbn ; +$converted =~ s/\D//g ; +while ( length $converted != 12 ) { + say "For the purposes of this exercise, the ISBN should only have 12 digits!" ; + $isbn = <STDIN> ; + $converted = $isbn ; + $converted =~ s/\D//g ; +} +my @multipliers ; +for (1 .. 6 ) { + push @multipliers , 1 , 3 ; +} +my @numbers = split( // , $converted ) ; +my $sum = 0 ; +for my $i ( 0 .. 11 ) { + $sum += $numbers[ $i ] * $multipliers[ $i ] ; +} +my $check = 10 - ( $sum % 10 ) ; +if ( $check == 10 ) { + $check = 0 ; +} +say "The correct ISBN number is $isbn" . $check . " !" ; diff --git a/challenge-162/ulrich-rieke/raku/ch-1.raku b/challenge-162/ulrich-rieke/raku/ch-1.raku new file mode 100644 index 0000000000..66a23a837f --- /dev/null +++ b/challenge-162/ulrich-rieke/raku/ch-1.raku @@ -0,0 +1,23 @@ +use v6 ; + +say "Enter an ISBN code without the last digit!" ; +my $isbn = $*IN.get ; +my $converted = $isbn ; +$converted ~~ s:g/\D// ; +while ( $converted.chars != 12 ) { + say "The ISBN code should only contain 12 digits for this exercise!" ; + $isbn = $*IN.get ; + $converted = $isbn ; + $converted ~~ s:g/\D// ; +} +my @numbers = $converted.comb.map( {.Int} ) ; +my @multipliers ; +for (1 .. 6 ) { + @multipliers.push( 1 , 3 ) ; +} +my $sum = sum( @numbers Z* @multipliers ) ; +my $check = 10 - ($sum % 10) ; +if ( $check == 10 ) { + $check = 0 ; +} +say "The correct ISBN number is " ~ ($isbn ~ ~$check) ~ " !" ; diff --git a/challenge-162/ulrich-rieke/raku/ch-2.raku b/challenge-162/ulrich-rieke/raku/ch-2.raku new file mode 100644 index 0000000000..63a402914a --- /dev/null +++ b/challenge-162/ulrich-rieke/raku/ch-2.raku @@ -0,0 +1,199 @@ +use v6 ; + +sub createGridWord( Str $seedphrase is copy ) { + my %lettercount ; + my @alphabet = ('a' ..'i').Array ; + my @secondPart = ('k' .. 'z').Array ; + for @secondPart -> $let { + @alphabet.push( $let ) ; + } + for @alphabet -> $let { + %lettercount{ $let } = 0 ; + } + my @gridLetters ; + $seedphrase ~~ s:g/\s// ; + for ( $seedphrase.comb ) -> $let { + if ( %lettercount{ $let } == 0 ) { + @gridLetters.push( $let ) ; + %lettercount{ $let } = 1 ; + } + } + for @alphabet -> $let { + if ( %lettercount{ $let } == 0 ) { + @gridLetters.push( $let ) ; + } + } + return @gridLetters.join( ) ; +} + +#which row in the grid is the number in ? +sub findRow( Int $n is copy --> Int ) { + return ($n - ( $n % 5 )) div 5 ; +} + +#which column in the grid is the number in? +sub findColumn( Int $n --> Int ) { + return $n % 5 ; +} + +#rule if both letters of a pair are on the same row +sub encodeOnSameRow( Str $keyPhrase , Str $letter --> Str ) { + my $pos = $keyPhrase.index( $letter ) ; + if ( findRow( $pos + 1 ) == findRow( $pos ) ) { + return $keyPhrase.substr( $pos + 1 , 1 ) ; + } + else { + return $keyPhrase.substr( $pos - 4 , 1 ) ; + } +} + +#rule if both letters of a pair are on the same column +sub encodeOnSameColumn( Str $keyPhrase , Str $letter --> Str ) { + my $pos = $keyPhrase.index( $letter ) ; + if ( $pos + 5 > 25 ) { + return $keyPhrase.substr( $pos % 5 , 1 ) ; + } + else { + return $keyPhrase.substr( $pos + 5 , 1 ) ; + } +} + +#the rule if a rectangle in the keyword grid is taken into account +sub encodeOnRectangle( Str $keyPhrase , Str $pair --> Str ) { + my Str $encrypted ; + my Int $pos1 = $keyPhrase.index( $pair.substr( 0 , 1 )) ; + my Int $pos2 = $keyPhrase.index( $pair.substr( 1 , 1 )) ; + my Int $row1 = findRow( $pos1 ) ; + my Int $row2 = findRow( $pos2 ) ; + my Int $col1 = findColumn( $pos1 ) ; + my Int $col2 = findColumn( $pos2 ) ; + $encrypted ~= $keyPhrase.substr( $row1 * 5 + $col2 , 1 ) ; + $encrypted ~= $keyPhrase.substr( $row2 * 5 + $col1 , 1 ) ; + return $encrypted ; +} + +#the following functions provide the return way of encoding +sub decodeOnSameRow( Str $keyPhrase , Str $letter --> Str ) { + my Int $pos = $keyPhrase.index( $letter ) ; + my Str $decrypted ; + if ( findRow( $pos - 1 ) == findRow( $pos ) ) { + $decrypted = $keyPhrase.substr( $pos - 1 , 1 ) ; + } + else { + $decrypted = $keyPhrase.substr( $pos + 4 , 1 ) ; + } + return $decrypted ; +} + +sub decodeOnSameColumn( Str $keyPhrase , Str $letter --> Str ) { + my Str $decrypted ; + my Int $pos = $keyPhrase.index( $letter ) ; + if ( $pos - 5 < 0 ) { + $decrypted = $keyPhrase.substr( 20 + findColumn( $pos ) , 1 ) ; + } + else { + $decrypted = $keyPhrase.substr( $pos - 5 , 1 ) ; + } + return $decrypted ; +} + +sub decodeOnRectangle( Str $keyPhrase , Str $encoded --> Str ) { + my Str $decrypted ; + my Int $pos1 = $keyPhrase.index( $encoded.substr( 0 , 1 ) ) ; + my Int $pos2 = $keyPhrase.index( $encoded.substr( 1 , 1 )) ; + my Int $row1 = findRow( $pos1 ) ; + my Int $row2 = findRow( $pos2 ) ; + my Int $col1 = findColumn( $pos1 ) ; + my Int $col2 = findColumn( $pos2 ) ; + $decrypted ~= $keyPhrase.substr( $row1 * 5 + $col2 , 1 ) ; + $decrypted ~= $keyPhrase.substr( $row2 * 5 + $col1 , 1 ) ; + return $decrypted ; +} + +#kind of composition of the above encoding functions +sub encrypt( Str $keyPhrase , Str $toBeEncrypted is copy --> Str ) { + my Str $encrypted ; + my $len = $toBeEncrypted.chars ; + if ( not ( $len %% 2 ) ) { + $toBeEncrypted ~= "x" ; + } + my @pairs = $toBeEncrypted.comb.rotor( 2 ) ; + for @pairs -> $pair { + my Int $pos1 = $keyPhrase.index( $pair[0] ) ; + my Int $pos2 = $keyPhrase.index( $pair[1] ) ; + if ( findRow( $pos1 ) == findRow( $pos2 ) ) { + $encrypted ~= encodeOnSameRow( $keyPhrase , $pair[0] ) ; + $encrypted ~= encodeOnSameRow( $keyPhrase, $pair[1]) ; + } + elsif ( findColumn( $pos1 ) == findColumn( $pos2 ) ) { + $encrypted ~= encodeOnSameColumn( $keyPhrase, $pair[ 0 ] ) ; + $encrypted ~= encodeOnSameColumn( $keyPhrase , $pair[1]) ; + } + else { + $encrypted ~= encodeOnRectangle( $keyPhrase , $pair[0] ~ $pair[1] ) ; + } + } + return $encrypted ; +} + +#composition of the above decoding functions +sub decrypt( Str $keyPhrase, Str $toBeDecrypted --> Str ) { + my Str $decrypted ; + my @pairs = $toBeDecrypted.comb.rotor( 2 ) ; + for @pairs -> $pair { + my Int $pos1 = $keyPhrase.index( $pair[0] ) ; + my Int $pos2 = $keyPhrase.index( $pair[1] ) ; + if ( findColumn( $pos1 ) == findColumn( $pos2 ) ) { + $decrypted ~= decodeOnSameColumn( $keyPhrase , $pair[0] ) ; + $decrypted ~= decodeOnSameColumn( $keyPhrase , $pair[1] ) ; + } + elsif ( findRow( $pos1 ) == findRow( $pos2 )) { + $decrypted ~= decodeOnSameRow( $keyPhrase , $pair[0] ) ; + $decrypted ~= decodeOnSameRow( $keyPhrase , $pair[1] ) ; + } + else { + $decrypted ~= decodeOnRectangle( $keyPhrase , $pair[0] ~ $pair[1] ) ; + } + } + return $decrypted ; +} + +#if two neighbouring letters are the same we intercalate an 'x' +sub intercalate( Str $word is copy --> Str ) { + my @letters = $word.comb ; + my Str $intercalated ; + my $len = $word.chars ; + for (0 .. $len - 2) -> $i { + if ( $word.substr( $i , 1 ) eq $word.substr( $i + 1 , 1 )) { + $intercalated ~= $word.substr( $i , 1 ) ; + $intercalated ~= 'x' ; + } + else { + $intercalated ~= $word.substr( $i , 1 ) ; + } + } + return $intercalated ; +} + +say "Please enter a key phrase:" ; +my Str $keyPhrase = $*IN.get ; +$keyPhrase ~~ s:g/'j'/'i'/ ;#j is taken for an i +my Str $gridWord = createGridWord( $keyPhrase ) ; +say "Please enter a string you want to encode:" ; +my Str $forEncryption = $*IN.get ; +$forEncryption ~~ s:g/'j'/'i'/ ; +$forEncryption ~~ s:g/\s// ; +my Int $len = $forEncryption.chars ; +if ( not ( $len %% 2 ) ) { + $forEncryption ~= "x" ; +} +if ( $forEncryption ~~ /(.)$0/ ) { + $forEncryption = intercalate( $forEncryption ) ; +} +say "The encrypted string is " ~ (encrypt( $gridWord , $forEncryption )) ~ " !" ; +say "Enter another key phrase!" ; +$keyPhrase = $*IN.get ; +$gridWord = createGridWord( $keyPhrase ) ; +say "Please enter a string you want to decode:" ; +my Str $forDecryption = $*IN.get ; +say "The decrypted string is " ~ (decrypt( $gridWord , $forDecryption )) ~ " !" ; diff --git a/stats/pwc-current.json b/stats/pwc-current.json index 889b90f6dd..830a74de95 100644 --- a/stats/pwc-current.json +++ b/stats/pwc-current.json @@ -1,120 +1,9 @@ { - "series" : [ - { - "colorByPoint" : 1, - "name" : "The Weekly Challenge - 162", - "data" : [ - { - "y" : 3, - "drilldown" : "Dave Jacoby", - "name" : "Dave Jacoby" - }, - { - "drilldown" : "E. Choroba", - "name" : "E. Choroba", - "y" : 2 - }, - { - "y" : 3, - "name" : "James Smith", - "drilldown" : "James Smith" - }, - { - "drilldown" : "Julien Fiegehenn", - "name" : "Julien Fiegehenn", - "y" : 2 - }, - { - "y" : 2, - "name" : "Luca Ferrari", - "drilldown" : "Luca Ferrari" - }, - { - "y" : 2, - "name" : "Mark Anderson", - "drilldown" : "Mark Anderson" - }, - { - "y" : 2, - "name" : "Niels van Dijke", - "drilldown" : "Niels van Dijke" - }, - { - "name" : "Paulo Custodio", - "drilldown" : "Paulo Custodio", - "y" : 2 - }, - { - "drilldown" : "Peter Campbell Smith", - "name" : "Peter Campbell Smith", - "y" : 3 - }, - { - "y" : 2, - "name" : "PokGoPun", - "drilldown" : "PokGoPun" - }, - { - "y" : 2, - "name" : "Robert DiCicco", - "drilldown" : "Robert DiCicco" - }, - { - "drilldown" : "Roger Bell_West", - "name" : "Roger Bell_West", - "y" : 4 - }, - { - "y" : 4, - "drilldown" : "Ryan Thompson", - "name" : "Ryan Thompson" - }, - { - "name" : "W. Luis Mochan", - "drilldown" : "W. Luis Mochan", - "y" : 3 - } - ] - } - ], - "title" : { - "text" : "The Weekly Challenge - 162" - }, - "yAxis" : { - "title" : { - "text" : "Total Solutions" - } - }, - "xAxis" : { - "type" : "category" - }, - "legend" : { - "enabled" : 0 - }, - "plotOptions" : { - "series" : { - "dataLabels" : { - "format" : "{point.y}", - "enabled" : 1 - }, - "borderWidth" : 0 - } - }, - "subtitle" : { - "text" : "[Champions: 14] Last updated at 2022-04-27 23:03:18 GMT" - }, - "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/>" - }, - "chart" : { - "type" : "column" - }, "drilldown" : { "series" : [ { "id" : "Dave Jacoby", + "name" : "Dave Jacoby", "data" : [ [ "Perl", @@ -124,8 +13,7 @@ "Blog", 1 ] - ], - "name" : "Dave Jacoby" + ] }, { "data" : [ @@ -134,12 +22,10 @@ 2 ] ], - "id" : "E. Choroba", - "name" : "E. Choroba" + "name" : "E. Choroba", + "id" : "E. Choroba" }, { - "name" : "James Smith", - "id" : "James Smith", "data" : [ [ "Perl", @@ -149,7 +35,9 @@ "Blog", 1 ] - ] + ], + "id" : "James Smith", + "name" : "James Smith" }, { "data" : [ @@ -158,8 +46,8 @@ 2 ] ], - "id" : "Julien Fiegehenn", - "name" : "Julien Fiegehenn" + "name" : "Julien Fiegehenn", + "id" : "Julien Fiegehenn" }, { "data" : [ @@ -168,41 +56,42 @@ 2 ] ], - "id" : "Luca Ferrari", - "name" : "Luca Ferrari" + "name" : "Luca Ferrari", + "id" : "Luca Ferrari" }, { - "name" : "Mark Anderson", "data" : [ [ "Raku", 2 ] ], + "name" : "Mark Anderson", "id" : "Mark Anderson" }, { - "name" : "Niels van Dijke", - "id" : "Niels van Dijke", "data" : [ [ "Perl", 2 ] - ] + ], + "id" : "Niels van Dijke", + "name" : "Niels van Dijke" }, { + "id" : "Paulo Custodio", + "name" : "Paulo Custodio", "data" : [ [ "Perl", 2 ] - ], - "id" : "Paulo Custodio", - "name" : "Paulo Custodio" + ] }, { "name" : "Peter Campbell Smith", + "id" : "Peter Campbell Smith", "data" : [ [ "Perl", @@ -212,12 +101,11 @@ "Blog", 1 ] - ], - "id" : "Peter Campbell Smith" + ] }, { - "name" : "PokGoPun", "id" : "PokGoPun", + "name" : "PokGoPun", "data" : [ [ "Perl", @@ -226,8 +114,6 @@ ] }, { - "name" : "Robert DiCicco", - "id" : "Robert DiCicco", "data" : [ [ "Perl", @@ -237,9 +123,12 @@ "Raku", 1 ] - ] + ], + "id" : "Robert DiCicco", + "name" : "Robert DiCicco" }, { + "name" : "Roger Bell_West", "id" : "Roger Bell_West", "data" : [ [ @@ -250,8 +139,7 @@ "Raku", 2 ] - ], - "name" : "Roger Bell_West" + ] }, { "data" : [ @@ -264,11 +152,26 @@ 2 ] ], - "id" : "Ryan Thompson", - "name" : "Ryan Thompson" + "name" : "Ryan Thompson", + "id" : "Ryan Thompson" + }, + { + "data" : [ + [ + "Perl", + 1 + ], + [ + "Raku", + 2 + ] + ], + "name" : "Ulrich Rieke", + "id" : "Ulrich Rieke" }, { "id" : "W. Luis Mochan", + "name" : "W. Luis Mochan", "data" : [ [ "Perl", @@ -278,9 +181,125 @@ "Blog", 1 ] - ], - "name" : "W. Luis Mochan" + ] } ] + }, + "title" : { + "text" : "The Weekly Challenge - 162" + }, + "legend" : { + "enabled" : 0 + }, + "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/>" + }, + "yAxis" : { + "title" : { + "text" : "Total Solutions" + } + }, + "plotOptions" : { + "series" : { + "borderWidth" : 0, + "dataLabels" : { + "format" : "{point.y}", + "enabled" : 1 + } + } + }, + "xAxis" : { + "type" : "category" + }, + "series" : [ + { + "colorByPoint" : 1, + "name" : "The Weekly Challenge - 162", + "data" : [ + { + "y" : 3, + "name" : "Dave Jacoby", + "drilldown" : "Dave Jacoby" + }, + { + "name" : "E. Choroba", + "drilldown" : "E. Choroba", + "y" : 2 + }, + { + "name" : "James Smith", + "drilldown" : "James Smith", + "y" : 3 + }, + { + "y" : 2, + "name" : "Julien Fiegehenn", + "drilldown" : "Julien Fiegehenn" + }, + { + "name" : "Luca Ferrari", + "drilldown" : "Luca Ferrari", + "y" : 2 + }, + { + "y" : 2, + "name" : "Mark Anderson", + "drilldown" : "Mark Anderson" + }, + { + "y" : 2, + "name" : "Niels van Dijke", + "drilldown" : "Niels van Dijke" + }, + { + "y" : 2, + "name" : "Paulo Custodio", + "drilldown" : "Paulo Custodio" + }, + { + "y" : 3, + "name" : "Peter Campbell Smith", + "drilldown" : "Peter Campbell Smith" + }, + { + "name" : "PokGoPun", + "drilldown" : "PokGoPun", + "y" : 2 + }, + { + "y" : 2, + "drilldown" : "Robert DiCicco", + "name" : "Robert DiCicco" + }, + { + "y" : 4, + "name" : "Roger Bell_West", + "drilldown" : "Roger Bell_West" + }, + { + "name" : "Ryan Thompson", + "drilldown" : "Ryan Thompson", + "y" : 4 + }, + { + "name" : "Ulrich Rieke", + "drilldown" : "Ulrich Rieke", + "y" : 3 + }, + { + "y" : 3, + "drilldown" : "W. Luis Mochan", + "name" : "W. Luis Mochan" + } + ] + } + ], + "chart" : { + "type" : "column" + }, + "subtitle" : { + "text" : "[Champions: 15] Last updated at 2022-04-28 01:54:00 GMT" } } diff --git a/stats/pwc-language-breakdown-summary.json b/stats/pwc-language-breakdown-summary.json index 600fa3294c..cb047d30c6 100644 --- a/stats/pwc-language-breakdown-summary.json +++ b/stats/pwc-language-breakdown-summary.json @@ -1,12 +1,31 @@ { - "yAxis" : { - "title" : { - "text" : null + "xAxis" : { + "labels" : { + "style" : { + "fontFamily" : "Verdana, sans-serif", + "fontSize" : "13px" + } }, - "min" : 0 + "type" : "category" + }, + "subtitle" : { + "text" : "Last updated at 2022-04-28 01:54:00 GMT" }, "series" : [ { + "dataLabels" : { + "format" : "{point.y:.0f}", + "align" : "right", + "style" : { + "fontFamily" : "Verdana, sans-serif", + "fontSize" : "13px" + }, + "color" : "#FFFFFF", + "rotation" : -90, + "y" : 10, + "enabled" : "true" + }, + "name" : "Contributions", "data" : [ [ "Blog", @@ -14,50 +33,31 @@ ], [ "Perl", - 7899 + 7900 ], [ "Raku", - 4678 + 4680 ] - ], - "dataLabels" : { - "rotation" : -90, - "y" : 10, - "format" : "{point.y:.0f}", - "color" : "#FFFFFF", - "align" : "right", - "style" : |
