trackler 2.2.1.24 → 2.2.1.25
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/trackler/version.rb +1 -1
- data/problem-specifications/TOPICS.txt +73 -73
- data/tracks/bash/config.json +82 -73
- data/tracks/bash/config/maintainers.json +9 -9
- data/tracks/bash/exercises/nucleotide-count/README.md +38 -0
- data/tracks/bash/exercises/nucleotide-count/example.sh +38 -0
- data/tracks/bash/exercises/nucleotide-count/nucleotide_count_test.sh +29 -0
- data/tracks/csharp/.travis.yml +9 -2
- data/tracks/csharp/build.cake +7 -34
- data/tracks/csharp/build.ps1 +2 -2
- data/tracks/csharp/build.sh +2 -2
- data/tracks/csharp/docs/GENERATORS.md +102 -0
- data/tracks/csharp/exercises/Exercises.sln +669 -0
- data/tracks/csharp/exercises/queen-attack/Example.cs +14 -1
- data/tracks/csharp/exercises/queen-attack/QueenAttack.cs +6 -1
- data/tracks/csharp/exercises/queen-attack/QueenAttackTest.cs +57 -19
- data/tracks/csharp/generators/Exercises/QueenAttack.cs +85 -0
- data/tracks/d/README.md +3 -2
- data/tracks/d/docs/SNIPPET.txt +7 -0
- data/tracks/d/exercises/crypto-square/.dub/dub.json +6 -0
- data/tracks/d/exercises/crypto-square/example/crypto_square.d +4 -2
- data/tracks/dart/exercises/bob/pubspec.lock +28 -16
- data/tracks/dart/exercises/bob/pubspec.yaml +1 -1
- data/tracks/dart/exercises/bob/test/bob_test.dart +2 -0
- data/tracks/dart/exercises/difference-of-squares/pubspec.lock +28 -16
- data/tracks/dart/exercises/difference-of-squares/pubspec.yaml +1 -1
- data/tracks/dart/exercises/gigasecond/pubspec.lock +28 -16
- data/tracks/dart/exercises/gigasecond/pubspec.yaml +1 -1
- data/tracks/dart/exercises/hamming/pubspec.lock +28 -16
- data/tracks/dart/exercises/hamming/pubspec.yaml +1 -1
- data/tracks/dart/exercises/hello-world/pubspec.lock +28 -16
- data/tracks/dart/exercises/hello-world/pubspec.yaml +1 -1
- data/tracks/dart/exercises/hello-world/test/hello_world_test.dart +13 -15
- data/tracks/dart/exercises/leap/pubspec.lock +28 -16
- data/tracks/dart/exercises/leap/pubspec.yaml +1 -1
- data/tracks/dart/exercises/rna-transcription/pubspec.lock +28 -16
- data/tracks/dart/exercises/rna-transcription/pubspec.yaml +1 -1
- data/tracks/elixir/exercises/pig-latin/example.exs +17 -18
- data/tracks/elixir/exercises/pig-latin/pig_latin_test.exs +16 -1
- data/tracks/fsharp/build.cake +0 -2
- data/tracks/go/exercises/error-handling/.meta/description.md +39 -0
- data/tracks/go/exercises/error-handling/.meta/hints.md +5 -0
- data/tracks/go/exercises/error-handling/.meta/metadata.yml +2 -0
- data/tracks/go/exercises/error-handling/README.md +43 -5
- data/tracks/go/exercises/error-handling/common.go +4 -3
- data/tracks/go/exercises/error-handling/error_handling_test.go +1 -38
- data/tracks/go/exercises/secret-handshake/secret_handshake_test.go +3 -1
- data/tracks/haxe/docs/LEARNING.md +8 -0
- data/tracks/java/.gitignore +2 -1
- data/tracks/java/config.json +337 -491
- data/tracks/java/config/maintainers.json +26 -26
- data/tracks/java/exercises/bob/src/test/java/BobTest.java +7 -1
- data/tracks/java/exercises/rna-transcription/src/example/java/RnaTranscription.java +4 -2
- data/tracks/java/exercises/rna-transcription/src/main/java/RnaTranscription.java +5 -3
- data/tracks/java/exercises/rna-transcription/src/test/java/RnaTranscriptionTest.java +21 -26
- data/tracks/javascript/config.json +662 -664
- data/tracks/javascript/config/maintainers.json +35 -35
- data/tracks/javascript/exercises/simple-cipher/simple-cipher.spec.js +7 -3
- data/tracks/plsql/config.json +52 -66
- data/tracks/plsql/docs/SNIPPET.txt +6 -0
- data/tracks/plsql/exercises/hello-world/example.plsql +20 -0
- data/tracks/plsql/exercises/hello-world/hello_world#.plsql +20 -0
- data/tracks/plsql/exercises/hello-world/ut_hello_world#.plsql +60 -0
- data/tracks/sml/Makefile +5 -0
- data/tracks/sml/bin/generate +3 -4
- data/tracks/sml/config.json +55 -5
- data/tracks/sml/exercises/collatz-conjecture/README.md +63 -0
- data/tracks/sml/exercises/collatz-conjecture/collatz-conjecture.sml +4 -0
- data/tracks/sml/exercises/collatz-conjecture/example.sml +17 -0
- data/tracks/sml/exercises/collatz-conjecture/test.sml +30 -0
- data/tracks/sml/exercises/collatz-conjecture/testlib.sml +159 -0
- data/tracks/sml/exercises/leap/README.md +63 -0
- data/tracks/sml/exercises/leap/example.sml +2 -0
- data/tracks/sml/exercises/leap/leap.sml +2 -0
- data/tracks/sml/exercises/leap/test.sml +24 -0
- data/tracks/sml/exercises/leap/testlib.sml +159 -0
- data/tracks/sml/exercises/rna-transcription/README.md +55 -0
- data/tracks/sml/exercises/rna-transcription/example.sml +20 -0
- data/tracks/sml/exercises/rna-transcription/rna-transcription.sml +2 -0
- data/tracks/sml/exercises/rna-transcription/test.sml +36 -0
- data/tracks/sml/exercises/rna-transcription/testlib.sml +159 -0
- data/tracks/sml/exercises/sum-of-multiples/README.md +48 -0
- data/tracks/sml/exercises/sum-of-multiples/example.sml +8 -0
- data/tracks/sml/exercises/sum-of-multiples/sum-of-multiples.sml +2 -0
- data/tracks/sml/exercises/sum-of-multiples/test.sml +48 -0
- data/tracks/sml/exercises/sum-of-multiples/testlib.sml +159 -0
- data/tracks/sml/exercises/two-fer/README.md +78 -0
- data/tracks/sml/exercises/two-fer/example.sml +1 -0
- data/tracks/sml/exercises/two-fer/test.sml +21 -0
- data/tracks/sml/exercises/two-fer/testlib.sml +159 -0
- data/tracks/sml/exercises/two-fer/two-fer.sml +2 -0
- metadata +43 -5
- data/tracks/csharp/exercises/Exercises.All.sln +0 -1545
- data/tracks/csharp/exercises/Exercises.Default.sln +0 -1503
- data/tracks/csharp/exercises/Exercises.Refactoring.sln +0 -61
@@ -17,28 +17,27 @@ defmodule PigLatin do
|
|
17
17
|
def translate(phrase) do
|
18
18
|
phrase
|
19
19
|
|> String.split(" ")
|
20
|
-
|> Enum.
|
20
|
+
|> Enum.map(&translate_word/1)
|
21
|
+
|> Enum.join(" ")
|
21
22
|
end
|
22
23
|
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
for sound <- @vowel_sounds do
|
33
|
-
defp to_pig_latin(unquote(sound) <> rest), do: "#{unquote(sound)}#{rest}ay"
|
34
|
-
end
|
35
|
-
|
36
|
-
for sound <- @consonants do
|
37
|
-
defp to_pig_latin(unquote(sound) <> rest), do: "#{rest}#{unquote(sound)}ay"
|
24
|
+
defp translate_word(word) do
|
25
|
+
word
|
26
|
+
|> consonant_prefix_and_rest
|
27
|
+
|> case do
|
28
|
+
["", _] -> word <> "ay"
|
29
|
+
[consonant_prefix, rest] -> rest <> consonant_prefix <> "ay"
|
30
|
+
_ -> word
|
31
|
+
end
|
38
32
|
end
|
39
33
|
|
40
|
-
|
41
|
-
|
34
|
+
defp consonant_prefix_and_rest(word) do
|
35
|
+
if Regex.match?(~r/^yt|xr/, word) do
|
36
|
+
["", word]
|
37
|
+
else
|
38
|
+
~r/^(s?qu|(?:[^aeiou]*))?([aeiou].*)$/
|
39
|
+
|> Regex.run(word, capture: :all_but_first)
|
40
|
+
end
|
42
41
|
end
|
43
42
|
end
|
44
43
|
|
@@ -40,7 +40,7 @@ defmodule PigLatinTest do
|
|
40
40
|
end
|
41
41
|
end
|
42
42
|
|
43
|
-
describe "first
|
43
|
+
describe "first consonant letters and ay are moved to the end of words that start with consonants" do
|
44
44
|
@tag :pending
|
45
45
|
test "word beginning with p" do
|
46
46
|
assert PigLatin.translate("pig") == "igpay"
|
@@ -65,6 +65,21 @@ defmodule PigLatinTest do
|
|
65
65
|
test "word beginning with q without a following u" do
|
66
66
|
assert PigLatin.translate("qat") == "atqay"
|
67
67
|
end
|
68
|
+
|
69
|
+
@tag :pending
|
70
|
+
test "word beginning with two consonants" do
|
71
|
+
assert PigLatin.translate("pleasure") == "easureplay"
|
72
|
+
end
|
73
|
+
|
74
|
+
@tag :pending
|
75
|
+
test "word beginning with three consonants" do
|
76
|
+
assert PigLatin.translate("stringify") == "ingifystray"
|
77
|
+
end
|
78
|
+
|
79
|
+
@tag :pending
|
80
|
+
test "word beginning with a serie of consonants : aliens speak Pig Latin too" do
|
81
|
+
assert PigLatin.translate("zkrrkrkrkrzzzkewk") == "ewkzkrrkrkrkrzzzkay"
|
82
|
+
end
|
68
83
|
end
|
69
84
|
|
70
85
|
describe "some letter clusters are treated like a single consonant" do
|
data/tracks/fsharp/build.cake
CHANGED
@@ -8,8 +8,6 @@ var exercise = Argument<string>("exercise", null);
|
|
8
8
|
var sourceDir = "./exercises";
|
9
9
|
var buildDir = "./build";
|
10
10
|
|
11
|
-
var solutionPath = buildDir + "/Exercises.sln";
|
12
|
-
|
13
11
|
var parallelOptions = new ParallelOptions { MaxDegreeOfParallelism = System.Environment.ProcessorCount };
|
14
12
|
|
15
13
|
Task("Clean")
|
@@ -0,0 +1,39 @@
|
|
1
|
+
Implement various kinds of error handling and resource management.
|
2
|
+
|
3
|
+
An important point of programming is how to handle errors and close resources
|
4
|
+
even if errors occur.
|
5
|
+
|
6
|
+
If you are new to Go errors or panics we recommend reading
|
7
|
+
[the documentation on these topics](https://blog.golang.org/defer-panic-and-recover)
|
8
|
+
first for context.
|
9
|
+
|
10
|
+
In this exercise you will be required to define a function `Use(o
|
11
|
+
ResourceOpener, input string) error` that opens a resource, calls Frob(input) on
|
12
|
+
the result resource and then closes that resource (in all cases). Your function
|
13
|
+
should properly handle errors and panics.
|
14
|
+
|
15
|
+
`ResourceOpener o` will be a function you may invoke directly `o()` in an
|
16
|
+
attempt to "open" the resource. It returns a Resource and error value in the
|
17
|
+
[idiomatic Go fashion](https://blog.golang.org/error-handling-and-go):
|
18
|
+
|
19
|
+
See the [common.go](./common.go) file for the definitions of Resource,
|
20
|
+
ResourceOpener, FrobError and TransientError. You will define your solution to
|
21
|
+
be in the same package as [common.go](./common.go) and
|
22
|
+
[error\_handling\_test.go](./error_handling_test.go): "erratum". This will make
|
23
|
+
those types available for use in your solution.
|
24
|
+
|
25
|
+
There will be a few places in your Use function where errors may occur:
|
26
|
+
|
27
|
+
* Invoking the ResourceOpener function passed into Use as the first parameter,
|
28
|
+
it may fail with an error of type TransientError, if so keep trying to open
|
29
|
+
the resource. If it is some other sort of error, return it from your `Use`
|
30
|
+
function.
|
31
|
+
|
32
|
+
* Calling the Frob function on the Resource returned from the ResourceOpener
|
33
|
+
function, it may **panic** with a FrobError (or another type of error). If it
|
34
|
+
is indeed a FrobError you will have to call the Resource's `Defrob` function
|
35
|
+
*using the panic FrobError's `.defrobTag` variable as input to the `Defrob`
|
36
|
+
function*. Either way `Use` should return the error.
|
37
|
+
|
38
|
+
* *Also note*: if the Resource was opened successfully make sure to call its
|
39
|
+
Close function no matter what (even if errors have occurred).
|
@@ -0,0 +1,5 @@
|
|
1
|
+
Testing for specific error types may be performed by
|
2
|
+
[type assertions](https://golang.org/ref/spec#Type_assertions). You may also
|
3
|
+
need to look at
|
4
|
+
[named return values](https://blog.golang.org/error-handling-and-go) as a
|
5
|
+
helpful way to return error information from panic recovery.
|
@@ -2,12 +2,50 @@
|
|
2
2
|
|
3
3
|
Implement various kinds of error handling and resource management.
|
4
4
|
|
5
|
-
An important point of programming is how to handle errors and close
|
6
|
-
|
5
|
+
An important point of programming is how to handle errors and close resources
|
6
|
+
even if errors occur.
|
7
|
+
|
8
|
+
If you are new to Go errors or panics we recommend reading
|
9
|
+
[the documentation on these topics](https://blog.golang.org/defer-panic-and-recover)
|
10
|
+
first for context.
|
11
|
+
|
12
|
+
In this exercise you will be required to define a function `Use(o
|
13
|
+
ResourceOpener, input string) error` that opens a resource, calls Frob(input) on
|
14
|
+
the result resource and then closes that resource (in all cases). Your function
|
15
|
+
should properly handle errors and panics.
|
16
|
+
|
17
|
+
`ResourceOpener o` will be a function you may invoke directly `o()` in an
|
18
|
+
attempt to "open" the resource. It returns a Resource and error value in the
|
19
|
+
[idiomatic Go fashion](https://blog.golang.org/error-handling-and-go):
|
20
|
+
|
21
|
+
See the [common.go](./common.go) file for the definitions of Resource,
|
22
|
+
ResourceOpener, FrobError and TransientError. You will define your solution to
|
23
|
+
be in the same package as [common.go](./common.go) and
|
24
|
+
[error\_handling\_test.go](./error_handling_test.go): "erratum". This will make
|
25
|
+
those types available for use in your solution.
|
26
|
+
|
27
|
+
There will be a few places in your Use function where errors may occur:
|
28
|
+
|
29
|
+
* Invoking the ResourceOpener function passed into Use as the first parameter,
|
30
|
+
it may fail with an error of type TransientError, if so keep trying to open
|
31
|
+
the resource. If it is some other sort of error, return it from your `Use`
|
32
|
+
function.
|
33
|
+
|
34
|
+
* Calling the Frob function on the Resource returned from the ResourceOpener
|
35
|
+
function, it may **panic** with a FrobError (or another type of error). If it
|
36
|
+
is indeed a FrobError you will have to call the Resource's `Defrob` function
|
37
|
+
*using the panic FrobError's `.defrobTag` variable as input to the `Defrob`
|
38
|
+
function*. Either way `Use` should return the error.
|
39
|
+
|
40
|
+
* *Also note*: if the Resource was opened successfully make sure to call its
|
41
|
+
Close function no matter what (even if errors have occurred).
|
42
|
+
|
43
|
+
Testing for specific error types may be performed by
|
44
|
+
[type assertions](https://golang.org/ref/spec#Type_assertions). You may also
|
45
|
+
need to look at
|
46
|
+
[named return values](https://blog.golang.org/error-handling-and-go) as a
|
47
|
+
helpful way to return error information from panic recovery.
|
7
48
|
|
8
|
-
This exercise requires you to handle various errors. Because error handling
|
9
|
-
is rather programming language specific you'll have to refer to the tests
|
10
|
-
for your track to see what's exactly required.
|
11
49
|
|
12
50
|
## Running the tests
|
13
51
|
|
@@ -36,15 +36,16 @@ func (e FrobError) Error() string {
|
|
36
36
|
type Resource interface {
|
37
37
|
|
38
38
|
// Resource is using composition to inherit the requirements of the io.Closer
|
39
|
-
// interface. What this means is that a Resource will
|
39
|
+
// interface. What this means is that a Resource implementation will be
|
40
|
+
// expected to have a .Close() method too.
|
40
41
|
io.Closer
|
41
42
|
|
42
43
|
// Frob does something with the input string.
|
43
44
|
// Because this is an incredibly badly designed system if there is an error
|
44
45
|
// it panics.
|
45
46
|
//
|
46
|
-
// The
|
47
|
-
// with the defrobTag string.
|
47
|
+
// The panicked error may be a FrobError in which case Defrob should be
|
48
|
+
// called with the .defrobTag string property of the error.
|
48
49
|
Frob(string)
|
49
50
|
|
50
51
|
Defrob(string)
|
@@ -5,44 +5,7 @@ import (
|
|
5
5
|
"testing"
|
6
6
|
)
|
7
7
|
|
8
|
-
//
|
9
|
-
// handles errors, most of the definition of your expected solution is provided
|
10
|
-
// here instead of the README.
|
11
|
-
// You should read this carefully (more than once) before implementation.
|
12
|
-
|
13
|
-
// Define a function `Use(o ResourceOpener, input string) error` that opens a
|
14
|
-
// resource, calls Frob(input) and closes the resource (in all cases). Your
|
15
|
-
// function should properly handle errors, as defined by the expectations of
|
16
|
-
// this test suite. ResourceOpener will be a function you may invoke directly
|
17
|
-
// `o()` in an attempt to "open" the resource. It returns a Resource and error
|
18
|
-
// value in the idiomatic Go fashion:
|
19
|
-
// https://blog.golang.org/error-handling-and-go
|
20
|
-
//
|
21
|
-
// See the ./common.go file for the definitions of Resource, ResourceOpener,
|
22
|
-
// FrobError and TransientError.
|
23
|
-
//
|
24
|
-
// There will be a few places in your Use function where errors may occur:
|
25
|
-
//
|
26
|
-
// - Invoking the ResourceOpener function passed into Use as the first
|
27
|
-
// parameter, it may fail with a TransientError, if so keep trying to open it.
|
28
|
-
// If it is some other sort of error, return it.
|
29
|
-
//
|
30
|
-
// - Calling the Frob function on the Resource returned from the ResourceOpener
|
31
|
-
// function, it may panic with a FrobError (or another type of error). If
|
32
|
-
// it is indeed a FrobError you will have to call the Resource's Defrob
|
33
|
-
// function using the FrobError's defrobTag variable as input. Either way
|
34
|
-
// return the error.
|
35
|
-
//
|
36
|
-
// Also note: if the Resource was opened successfully make sure to call its
|
37
|
-
// Close function no matter what (even if errors occur).
|
38
|
-
//
|
39
|
-
// If you are new to Go errors or panics here is a good place to start:
|
40
|
-
// https://blog.golang.org/defer-panic-and-recover
|
41
|
-
//
|
42
|
-
// You may also need to look at named return values as a helpful way to
|
43
|
-
// return error information from panic recovery:
|
44
|
-
// https://tour.golang.org/basics/7
|
45
|
-
|
8
|
+
// Please review the README for this exercise carefully before implementation.
|
46
9
|
const targetTestVersion = 2
|
47
10
|
|
48
11
|
// Little helper to let us customize behaviour of the resource on a per-test
|
@@ -0,0 +1,8 @@
|
|
1
|
+
# Learning Haxe
|
2
|
+
|
3
|
+
* [Official Haxe Documentation](http://haxe.org/documentation/introduction/)
|
4
|
+
* [Introduction to the Haxe Toolkit](http://haxe.org/documentation/introduction/toolkit-introduction.html)
|
5
|
+
* [Manual](http://haxe.org/manual/introduction.html)
|
6
|
+
* [API Docs](http://haxe.org/api/)
|
7
|
+
* [Haxe Code Cookbook](http://code.haxe.org) - Study examples of Haxe source code
|
8
|
+
* [Try Haxe](https://try.haxe.org) - Run examples of Haxe code or try your own in the browser
|
data/tracks/java/.gitignore
CHANGED
data/tracks/java/config.json
CHANGED
@@ -1,836 +1,682 @@
|
|
1
1
|
{
|
2
|
-
"language": "Java",
|
3
2
|
"active": true,
|
4
3
|
"blurb": "Java is a very widely used Object Oriented programming language. It's safe, simple to use and portable so that you can \"write once, run anywhere\".",
|
5
4
|
"exercises": [
|
6
5
|
{
|
7
|
-
"uuid": "f77dc7e3-35a8-4300-a7c8-2c1765e9644d",
|
8
|
-
"slug": "hello-world",
|
9
6
|
"core": true,
|
10
|
-
"unlocked_by": null,
|
11
7
|
"difficulty": 1,
|
12
|
-
"
|
13
|
-
|
14
|
-
|
8
|
+
"slug": "hello-world",
|
9
|
+
"topics": null,
|
10
|
+
"unlocked_by": null,
|
11
|
+
"uuid": "f77dc7e3-35a8-4300-a7c8-2c1765e9644d"
|
15
12
|
},
|
16
13
|
{
|
17
|
-
"uuid": "74515d45-565b-4be2-96c4-77e58efa9257",
|
18
|
-
"slug": "two-fer",
|
19
14
|
"core": true,
|
20
|
-
"unlocked_by": null,
|
21
15
|
"difficulty": 1,
|
22
|
-
"
|
23
|
-
|
24
|
-
|
16
|
+
"slug": "two-fer",
|
17
|
+
"topics": null,
|
18
|
+
"unlocked_by": null,
|
19
|
+
"uuid": "74515d45-565b-4be2-96c4-77e58efa9257"
|
25
20
|
},
|
26
21
|
{
|
27
|
-
"uuid": "8e983ed2-62f7-439a-a144-fb8fdbdf4d30",
|
28
|
-
"slug": "rna-transcription",
|
29
22
|
"core": false,
|
30
|
-
"unlocked_by": null,
|
31
23
|
"difficulty": 2,
|
32
|
-
"
|
33
|
-
|
34
|
-
|
24
|
+
"slug": "rna-transcription",
|
25
|
+
"topics": null,
|
26
|
+
"unlocked_by": null,
|
27
|
+
"uuid": "8e983ed2-62f7-439a-a144-fb8fdbdf4d30"
|
35
28
|
},
|
36
29
|
{
|
37
|
-
"uuid": "133b0f84-bdc7-4508-a0a1-5732a7db81ef",
|
38
|
-
"slug": "pangram",
|
39
30
|
"core": false,
|
40
|
-
"unlocked_by": null,
|
41
31
|
"difficulty": 3,
|
42
|
-
"
|
43
|
-
|
44
|
-
|
32
|
+
"slug": "pangram",
|
33
|
+
"topics": null,
|
34
|
+
"unlocked_by": null,
|
35
|
+
"uuid": "133b0f84-bdc7-4508-a0a1-5732a7db81ef"
|
45
36
|
},
|
46
37
|
{
|
47
|
-
"uuid": "ce899ca6-9cc7-47ba-b76f-1bbcf2630b76",
|
48
|
-
"slug": "hamming",
|
49
38
|
"core": true,
|
50
|
-
"unlocked_by": null,
|
51
39
|
"difficulty": 3,
|
52
|
-
"
|
53
|
-
|
54
|
-
|
40
|
+
"slug": "hamming",
|
41
|
+
"topics": null,
|
42
|
+
"unlocked_by": null,
|
43
|
+
"uuid": "ce899ca6-9cc7-47ba-b76f-1bbcf2630b76"
|
55
44
|
},
|
56
45
|
{
|
57
|
-
"uuid": "bf1641c8-dc0d-4d38-9cfe-b4c132ea3553",
|
58
|
-
"slug": "gigasecond",
|
59
46
|
"core": true,
|
60
|
-
"unlocked_by": null,
|
61
47
|
"difficulty": 3,
|
62
|
-
"
|
63
|
-
|
64
|
-
|
48
|
+
"slug": "gigasecond",
|
49
|
+
"topics": null,
|
50
|
+
"unlocked_by": null,
|
51
|
+
"uuid": "bf1641c8-dc0d-4d38-9cfe-b4c132ea3553"
|
65
52
|
},
|
66
53
|
{
|
67
|
-
"uuid": "e5b524cd-3a1c-468a-8981-13e8eeccb29d",
|
68
|
-
"slug": "space-age",
|
69
54
|
"core": false,
|
70
|
-
"unlocked_by": null,
|
71
55
|
"difficulty": 3,
|
72
|
-
"
|
73
|
-
|
74
|
-
|
56
|
+
"slug": "space-age",
|
57
|
+
"topics": null,
|
58
|
+
"unlocked_by": null,
|
59
|
+
"uuid": "e5b524cd-3a1c-468a-8981-13e8eeccb29d"
|
75
60
|
},
|
76
61
|
{
|
77
|
-
"uuid": "c31bbc6d-bdcf-44f7-bf35-5f98752e38d0",
|
78
|
-
"slug": "acronym",
|
79
62
|
"core": false,
|
80
|
-
"unlocked_by": null,
|
81
63
|
"difficulty": 3,
|
82
|
-
"
|
83
|
-
|
84
|
-
|
64
|
+
"slug": "acronym",
|
65
|
+
"topics": null,
|
66
|
+
"unlocked_by": null,
|
67
|
+
"uuid": "c31bbc6d-bdcf-44f7-bf35-5f98752e38d0"
|
85
68
|
},
|
86
69
|
{
|
87
|
-
"uuid": "afae9f2d-8baf-4bd7-8d7c-d486337f7c97",
|
88
|
-
"slug": "scrabble-score",
|
89
70
|
"core": true,
|
90
|
-
"unlocked_by": null,
|
91
71
|
"difficulty": 3,
|
92
|
-
"
|
93
|
-
|
94
|
-
|
72
|
+
"slug": "scrabble-score",
|
73
|
+
"topics": null,
|
74
|
+
"unlocked_by": null,
|
75
|
+
"uuid": "afae9f2d-8baf-4bd7-8d7c-d486337f7c97"
|
95
76
|
},
|
96
77
|
{
|
97
|
-
"uuid": "d916e4f8-fda1-41c0-ab24-79e8fc3f1272",
|
98
|
-
"slug": "raindrops",
|
99
78
|
"core": false,
|
100
|
-
"unlocked_by": "hello-world",
|
101
79
|
"difficulty": 3,
|
102
|
-
"
|
103
|
-
|
104
|
-
|
80
|
+
"slug": "raindrops",
|
81
|
+
"topics": null,
|
82
|
+
"unlocked_by": "hello-world",
|
83
|
+
"uuid": "d916e4f8-fda1-41c0-ab24-79e8fc3f1272"
|
105
84
|
},
|
106
85
|
{
|
107
|
-
"uuid": "b0da59c6-1b55-405c-b163-007ebf09f5e8",
|
108
|
-
"slug": "difference-of-squares",
|
109
86
|
"core": true,
|
110
|
-
"unlocked_by": null,
|
111
87
|
"difficulty": 3,
|
112
|
-
"
|
113
|
-
|
114
|
-
|
88
|
+
"slug": "difference-of-squares",
|
89
|
+
"topics": null,
|
90
|
+
"unlocked_by": null,
|
91
|
+
"uuid": "b0da59c6-1b55-405c-b163-007ebf09f5e8"
|
115
92
|
},
|
116
93
|
{
|
117
|
-
"uuid": "71c7c174-7e2c-43c2-bdd6-7515fcb12a91",
|
118
|
-
"slug": "secret-handshake",
|
119
94
|
"core": true,
|
120
|
-
"unlocked_by": null,
|
121
95
|
"difficulty": 3,
|
122
|
-
"
|
123
|
-
|
124
|
-
|
96
|
+
"slug": "secret-handshake",
|
97
|
+
"topics": null,
|
98
|
+
"unlocked_by": null,
|
99
|
+
"uuid": "71c7c174-7e2c-43c2-bdd6-7515fcb12a91"
|
125
100
|
},
|
126
101
|
{
|
127
|
-
"uuid": "d0dcc898-ec38-4822-9e3c-1a1829c9b2d9",
|
128
|
-
"slug": "perfect-numbers",
|
129
102
|
"core": false,
|
130
|
-
"unlocked_by": "difference-of-squares",
|
131
103
|
"difficulty": 3,
|
132
|
-
"
|
133
|
-
|
134
|
-
|
104
|
+
"slug": "perfect-numbers",
|
105
|
+
"topics": null,
|
106
|
+
"unlocked_by": "difference-of-squares",
|
107
|
+
"uuid": "d0dcc898-ec38-4822-9e3c-1a1829c9b2d9"
|
135
108
|
},
|
136
109
|
{
|
137
|
-
"uuid": "2f244afc-3e7b-4f89-92af-e2b427f4ef35",
|
138
|
-
"slug": "sum-of-multiples",
|
139
110
|
"core": false,
|
140
|
-
"unlocked_by": "difference-of-squares",
|
141
111
|
"difficulty": 4,
|
142
|
-
"
|
143
|
-
|
144
|
-
|
112
|
+
"slug": "sum-of-multiples",
|
113
|
+
"topics": null,
|
114
|
+
"unlocked_by": "difference-of-squares",
|
115
|
+
"uuid": "2f244afc-3e7b-4f89-92af-e2b427f4ef35"
|
145
116
|
},
|
146
117
|
{
|
147
|
-
"uuid": "5227a76c-8ecb-4e5f-b023-6af65a057c41",
|
148
|
-
"slug": "luhn",
|
149
118
|
"core": false,
|
150
|
-
"unlocked_by": "hamming",
|
151
119
|
"difficulty": 4,
|
152
|
-
"
|
153
|
-
|
154
|
-
|
120
|
+
"slug": "luhn",
|
121
|
+
"topics": null,
|
122
|
+
"unlocked_by": "hamming",
|
123
|
+
"uuid": "5227a76c-8ecb-4e5f-b023-6af65a057c41"
|
155
124
|
},
|
156
125
|
{
|
157
|
-
"uuid": "c1d4e0b4-6a0f-4be9-8222-345966621f53",
|
158
|
-
"slug": "matrix",
|
159
126
|
"core": true,
|
160
|
-
"unlocked_by": null,
|
161
127
|
"difficulty": 4,
|
162
|
-
"
|
163
|
-
|
164
|
-
|
128
|
+
"slug": "matrix",
|
129
|
+
"topics": null,
|
130
|
+
"unlocked_by": null,
|
131
|
+
"uuid": "c1d4e0b4-6a0f-4be9-8222-345966621f53"
|
165
132
|
},
|
166
133
|
{
|
167
|
-
"uuid": "ec268d8e-997b-4553-8c67-8bdfa1ecb888",
|
168
|
-
"slug": "triangle",
|
169
134
|
"core": true,
|
170
|
-
"unlocked_by": null,
|
171
135
|
"difficulty": 4,
|
172
|
-
"
|
173
|
-
|
174
|
-
|
136
|
+
"slug": "triangle",
|
137
|
+
"topics": null,
|
138
|
+
"unlocked_by": null,
|
139
|
+
"uuid": "ec268d8e-997b-4553-8c67-8bdfa1ecb888"
|
175
140
|
},
|
176
141
|
{
|
177
|
-
"uuid": "b7310b6e-435c-4d5f-b2bd-31e586d0f238",
|
178
|
-
"slug": "largest-series-product",
|
179
142
|
"core": false,
|
180
|
-
"unlocked_by": "hamming",
|
181
143
|
"difficulty": 4,
|
182
|
-
"
|
183
|
-
|
184
|
-
|
144
|
+
"slug": "largest-series-product",
|
145
|
+
"topics": null,
|
146
|
+
"unlocked_by": "hamming",
|
147
|
+
"uuid": "b7310b6e-435c-4d5f-b2bd-31e586d0f238"
|
185
148
|
},
|
186
149
|
{
|
187
|
-
"uuid": "6791d01f-bae4-4b63-ae76-86529ac49e36",
|
188
|
-
"slug": "sieve",
|
189
150
|
"core": false,
|
190
|
-
"unlocked_by": "difference-of-squares",
|
191
151
|
"difficulty": 4,
|
192
|
-
"
|
193
|
-
|
194
|
-
|
152
|
+
"slug": "sieve",
|
153
|
+
"topics": null,
|
154
|
+
"unlocked_by": "difference-of-squares",
|
155
|
+
"uuid": "6791d01f-bae4-4b63-ae76-86529ac49e36"
|
195
156
|
},
|
196
157
|
{
|
197
|
-
"uuid": "581afdbb-dfb6-4dc5-9554-a025b5469a3c",
|
198
|
-
"slug": "twelve-days",
|
199
158
|
"core": false,
|
200
|
-
"unlocked_by": "two-fer",
|
201
159
|
"difficulty": 4,
|
202
|
-
"
|
203
|
-
|
204
|
-
|
160
|
+
"slug": "twelve-days",
|
161
|
+
"topics": null,
|
162
|
+
"unlocked_by": "two-fer",
|
163
|
+
"uuid": "581afdbb-dfb6-4dc5-9554-a025b5469a3c"
|
205
164
|
},
|
206
165
|
{
|
207
|
-
"uuid": "9eb41883-55ef-4681-b5ac-5c2259302772",
|
208
|
-
"slug": "rotational-cipher",
|
209
166
|
"core": true,
|
210
|
-
"unlocked_by": null,
|
211
167
|
"difficulty": 4,
|
212
|
-
"
|
213
|
-
|
214
|
-
|
168
|
+
"slug": "rotational-cipher",
|
169
|
+
"topics": null,
|
170
|
+
"unlocked_by": null,
|
171
|
+
"uuid": "9eb41883-55ef-4681-b5ac-5c2259302772"
|
215
172
|
},
|
216
173
|
{
|
217
|
-
"uuid": "0b92ffee-c092-4ab1-ad78-76c8cf80e1b5",
|
218
|
-
"slug": "kindergarten-garden",
|
219
174
|
"core": false,
|
220
|
-
"unlocked_by": "matrix",
|
221
175
|
"difficulty": 4,
|
222
|
-
"
|
223
|
-
|
224
|
-
|
176
|
+
"slug": "kindergarten-garden",
|
177
|
+
"topics": null,
|
178
|
+
"unlocked_by": "matrix",
|
179
|
+
"uuid": "0b92ffee-c092-4ab1-ad78-76c8cf80e1b5"
|
225
180
|
},
|
226
181
|
{
|
227
|
-
"uuid": "1500d39a-c9d9-4d3a-9e77-fdc1837fc6ad",
|
228
|
-
"slug": "collatz-conjecture",
|
229
182
|
"core": false,
|
230
|
-
"unlocked_by": "triangle",
|
231
183
|
"difficulty": 4,
|
232
|
-
"
|
233
|
-
|
234
|
-
|
184
|
+
"slug": "collatz-conjecture",
|
185
|
+
"topics": null,
|
186
|
+
"unlocked_by": "triangle",
|
187
|
+
"uuid": "1500d39a-c9d9-4d3a-9e77-fdc1837fc6ad"
|
235
188
|
},
|
236
189
|
{
|
237
|
-
"uuid": "2c69db99-648d-4bd7-8012-1fbdeff6ca0a",
|
238
|
-
"slug": "nth-prime",
|
239
190
|
"core": false,
|
240
|
-
"unlocked_by": "triangle",
|
241
191
|
"difficulty": 4,
|
242
|
-
"
|
243
|
-
|
244
|
-
|
192
|
+
"slug": "nth-prime",
|
193
|
+
"topics": null,
|
194
|
+
"unlocked_by": "triangle",
|
195
|
+
"uuid": "2c69db99-648d-4bd7-8012-1fbdeff6ca0a"
|
245
196
|
},
|
246
197
|
{
|
247
|
-
"uuid": "8dfc2f0d-1141-46e9-95e2-6f35ccf6f160",
|
248
|
-
"slug": "saddle-points",
|
249
198
|
"core": true,
|
250
|
-
"unlocked_by": null,
|
251
199
|
"difficulty": 4,
|
252
|
-
"
|
253
|
-
|
254
|
-
|
200
|
+
"slug": "saddle-points",
|
201
|
+
"topics": null,
|
202
|
+
"unlocked_by": null,
|
203
|
+
"uuid": "8dfc2f0d-1141-46e9-95e2-6f35ccf6f160"
|
255
204
|
},
|
256
205
|
{
|
257
|
-
"uuid": "ecbd997b-86f4-4e11-9ff0-706ac2899415",
|
258
|
-
"slug": "diamond",
|
259
206
|
"core": false,
|
260
|
-
"unlocked_by": "two-fer",
|
261
207
|
"difficulty": 4,
|
262
|
-
"
|
263
|
-
|
264
|
-
|
208
|
+
"slug": "diamond",
|
209
|
+
"topics": null,
|
210
|
+
"unlocked_by": "two-fer",
|
211
|
+
"uuid": "ecbd997b-86f4-4e11-9ff0-706ac2899415"
|
265
212
|
},
|
266
213
|
{
|
267
|
-
"uuid": "c3e89c7c-3a8a-4ddc-b653-9b0ff9e1d7d8",
|
268
|
-
"slug": "isogram",
|
269
214
|
"core": false,
|
270
|
-
"unlocked_by": "hello-world",
|
271
215
|
"difficulty": 4,
|
272
|
-
"
|
273
|
-
|
274
|
-
|
216
|
+
"slug": "isogram",
|
217
|
+
"topics": null,
|
218
|
+
"unlocked_by": "hello-world",
|
219
|
+
"uuid": "c3e89c7c-3a8a-4ddc-b653-9b0ff9e1d7d8"
|
275
220
|
},
|
276
221
|
{
|
277
|
-
"uuid": "a732a838-8170-458a-a85e-d6b4c46f97a1",
|
278
|
-
"slug": "flatten-array",
|
279
222
|
"core": true,
|
280
|
-
"unlocked_by": null,
|
281
223
|
"difficulty": 5,
|
282
|
-
"
|
283
|
-
|
284
|
-
|
224
|
+
"slug": "flatten-array",
|
225
|
+
"topics": null,
|
226
|
+
"unlocked_by": null,
|
227
|
+
"uuid": "a732a838-8170-458a-a85e-d6b4c46f97a1"
|
285
228
|
},
|
286
229
|
{
|
287
|
-
"uuid": "38bc80ae-d842-4c04-a797-48edf322504d",
|
288
|
-
"slug": "pig-latin",
|
289
230
|
"core": false,
|
290
|
-
"unlocked_by": "hello-world",
|
291
231
|
"difficulty": 5,
|
292
|
-
"
|
293
|
-
|
294
|
-
|
232
|
+
"slug": "pig-latin",
|
233
|
+
"topics": null,
|
234
|
+
"unlocked_by": "hello-world",
|
235
|
+
"uuid": "38bc80ae-d842-4c04-a797-48edf322504d"
|
295
236
|
},
|
296
237
|
{
|
297
|
-
"uuid": "5f9139e7-9fbb-496a-a0d7-a946283033de",
|
298
|
-
"slug": "phone-number",
|
299
238
|
"core": false,
|
300
|
-
"unlocked_by": "hamming",
|
301
239
|
"difficulty": 5,
|
302
|
-
"
|
303
|
-
|
304
|
-
|
240
|
+
"slug": "phone-number",
|
241
|
+
"topics": null,
|
242
|
+
"unlocked_by": "hamming",
|
243
|
+
"uuid": "5f9139e7-9fbb-496a-a0d7-a946283033de"
|
305
244
|
},
|
306
245
|
{
|
307
|
-
"uuid": "2d80fdfc-5bd7-4b67-9fbe-8ab820d89051",
|
308
|
-
"slug": "nucleotide-count",
|
309
246
|
"core": false,
|
310
|
-
"unlocked_by": "hamming",
|
311
247
|
"difficulty": 5,
|
312
|
-
"
|
313
|
-
|
314
|
-
|
248
|
+
"slug": "nucleotide-count",
|
249
|
+
"topics": null,
|
250
|
+
"unlocked_by": "hamming",
|
251
|
+
"uuid": "2d80fdfc-5bd7-4b67-9fbe-8ab820d89051"
|
315
252
|
},
|
316
253
|
{
|
317
|
-
"uuid": "3603b770-87a5-4758-91f3-b4d1f9075bc1",
|
318
|
-
"slug": "word-count",
|
319
254
|
"core": true,
|
320
|
-
"unlocked_by": null,
|
321
255
|
"difficulty": 5,
|
322
|
-
"
|
323
|
-
|
324
|
-
|
256
|
+
"slug": "word-count",
|
257
|
+
"topics": null,
|
258
|
+
"unlocked_by": null,
|
259
|
+
"uuid": "3603b770-87a5-4758-91f3-b4d1f9075bc1"
|
325
260
|
},
|
326
261
|
{
|
327
|
-
"uuid": "4499a3f9-73a7-48bf-8753-d5b6abf588c9",
|
328
|
-
"slug": "run-length-encoding",
|
329
262
|
"core": false,
|
330
|
-
"unlocked_by": "rotational-cipher",
|
331
263
|
"difficulty": 5,
|
332
|
-
"
|
333
|
-
|
334
|
-
|
264
|
+
"slug": "run-length-encoding",
|
265
|
+
"topics": null,
|
266
|
+
"unlocked_by": "rotational-cipher",
|
267
|
+
"uuid": "4499a3f9-73a7-48bf-8753-d5b6abf588c9"
|
335
268
|
},
|
336
269
|
{
|
337
|
-
"uuid": "d7c2eed9-64c7-4c4a-b45d-c787d460337f",
|
338
|
-
"slug": "robot-name",
|
339
270
|
"core": true,
|
340
|
-
"unlocked_by": null,
|
341
271
|
"difficulty": 5,
|
342
|
-
"
|
343
|
-
|
344
|
-
|
272
|
+
"slug": "robot-name",
|
273
|
+
"topics": null,
|
274
|
+
"unlocked_by": null,
|
275
|
+
"uuid": "d7c2eed9-64c7-4c4a-b45d-c787d460337f"
|
345
276
|
},
|
346
277
|
{
|
347
|
-
"uuid": "599c08ec-7338-46ed-99f8-a76f78f724e6",
|
348
|
-
"slug": "prime-factors",
|
349
278
|
"core": false,
|
350
|
-
"unlocked_by": "triangle",
|
351
279
|
"difficulty": 5,
|
352
|
-
"
|
353
|
-
|
354
|
-
|
280
|
+
"slug": "prime-factors",
|
281
|
+
"topics": null,
|
282
|
+
"unlocked_by": "triangle",
|
283
|
+
"uuid": "599c08ec-7338-46ed-99f8-a76f78f724e6"
|
355
284
|
},
|
356
285
|
{
|
357
|
-
"uuid": "6a617ddb-04e3-451c-bb30-27ccd0be9125",
|
358
|
-
"slug": "allergies",
|
359
286
|
"core": false,
|
360
|
-
"unlocked_by": "gigasecond",
|
361
287
|
"difficulty": 5,
|
362
|
-
"
|
363
|
-
|
364
|
-
|
288
|
+
"slug": "allergies",
|
289
|
+
"topics": null,
|
290
|
+
"unlocked_by": "gigasecond",
|
291
|
+
"uuid": "6a617ddb-04e3-451c-bb30-27ccd0be9125"
|
365
292
|
},
|
366
293
|
{
|
367
|
-
"uuid": "34cd328c-cd96-492b-abd4-2b8716cdcd9a",
|
368
|
-
"slug": "bob",
|
369
294
|
"core": false,
|
370
|
-
"unlocked_by": "two-fer",
|
371
295
|
"difficulty": 5,
|
372
|
-
"
|
373
|
-
|
374
|
-
|
296
|
+
"slug": "bob",
|
297
|
+
"topics": null,
|
298
|
+
"unlocked_by": "two-fer",
|
299
|
+
"uuid": "34cd328c-cd96-492b-abd4-2b8716cdcd9a"
|
375
300
|
},
|
376
301
|
{
|
377
|
-
"uuid": "d2a76905-1c8c-4b03-b4f7-4fbff19329f3",
|
378
|
-
"slug": "pascals-triangle",
|
379
302
|
"core": false,
|
380
|
-
"unlocked_by": "matrix",
|
381
303
|
"difficulty": 5,
|
382
|
-
"
|
383
|
-
|
384
|
-
|
304
|
+
"slug": "pascals-triangle",
|
305
|
+
"topics": null,
|
306
|
+
"unlocked_by": "matrix",
|
307
|
+
"uuid": "d2a76905-1c8c-4b03-b4f7-4fbff19329f3"
|
385
308
|
},
|
386
309
|
{
|
387
|
-
"uuid": "85aa50ac-0141-49eb-bc6f-62f3f7a97647",
|
388
|
-
"slug": "bracket-push",
|
389
310
|
"core": false,
|
390
|
-
"unlocked_by": "flatten-array",
|
391
311
|
"difficulty": 5,
|
392
|
-
"
|
393
|
-
|
394
|
-
|
312
|
+
"slug": "bracket-push",
|
313
|
+
"topics": null,
|
314
|
+
"unlocked_by": "flatten-array",
|
315
|
+
"uuid": "85aa50ac-0141-49eb-bc6f-62f3f7a97647"
|
395
316
|
},
|
396
317
|
{
|
397
|
-
"uuid": "af80d7f4-c7d0-4d0b-9c30-09da120f6bb9",
|
398
|
-
"slug": "series",
|
399
318
|
"core": false,
|
400
|
-
"unlocked_by": "hamming",
|
401
319
|
"difficulty": 5,
|
402
|
-
"
|
403
|
-
|
404
|
-
|
320
|
+
"slug": "series",
|
321
|
+
"topics": null,
|
322
|
+
"unlocked_by": "hamming",
|
323
|
+
"uuid": "af80d7f4-c7d0-4d0b-9c30-09da120f6bb9"
|
405
324
|
},
|
406
325
|
{
|
407
|
-
"uuid": "d36ce010-210f-4e9a-9d6c-cb933e0a59af",
|
408
|
-
"slug": "atbash-cipher",
|
409
326
|
"core": false,
|
410
|
-
"unlocked_by": "rotational-cipher",
|
411
327
|
"difficulty": 5,
|
412
|
-
"
|
413
|
-
|
414
|
-
|
328
|
+
"slug": "atbash-cipher",
|
329
|
+
"topics": null,
|
330
|
+
"unlocked_by": "rotational-cipher",
|
331
|
+
"uuid": "d36ce010-210f-4e9a-9d6c-cb933e0a59af"
|
415
332
|
},
|
416
333
|
{
|
417
|
-
"uuid": "163fcc6b-c054-4232-a88b-0aded846a6eb",
|
418
|
-
"slug": "spiral-matrix",
|
419
334
|
"core": false,
|
420
|
-
"unlocked_by": "matrix",
|
421
335
|
"difficulty": 6,
|
422
|
-
"
|
423
|
-
|
424
|
-
|
336
|
+
"slug": "spiral-matrix",
|
337
|
+
"topics": null,
|
338
|
+
"unlocked_by": "matrix",
|
339
|
+
"uuid": "163fcc6b-c054-4232-a88b-0aded846a6eb"
|
425
340
|
},
|
426
341
|
{
|
427
|
-
"uuid": "3e728cd4-5e5f-4c69-8a53-bc36d020fcdb",
|
428
|
-
"slug": "roman-numerals",
|
429
342
|
"core": false,
|
430
|
-
"unlocked_by": "hamming",
|
431
343
|
"difficulty": 6,
|
432
|
-
"
|
433
|
-
|
434
|
-
|
344
|
+
"slug": "roman-numerals",
|
345
|
+
"topics": null,
|
346
|
+
"unlocked_by": "hamming",
|
347
|
+
"uuid": "3e728cd4-5e5f-4c69-8a53-bc36d020fcdb"
|
435
348
|
},
|
436
349
|
{
|
437
|
-
"uuid": "57b76837-4610-466f-9373-d5c2697625f1",
|
438
|
-
"slug": "transpose",
|
439
350
|
"core": false,
|
440
|
-
"unlocked_by": "matrix",
|
441
351
|
"difficulty": 6,
|
442
|
-
"
|
443
|
-
|
444
|
-
|
352
|
+
"slug": "transpose",
|
353
|
+
"topics": null,
|
354
|
+
"unlocked_by": "matrix",
|
355
|
+
"uuid": "57b76837-4610-466f-9373-d5c2697625f1"
|
445
356
|
},
|
446
357
|
{
|
447
|
-
"
|
358
|
+
"core": false,
|
359
|
+
"difficulty": 6,
|
448
360
|
"slug": "house",
|
449
|
-
"
|
361
|
+
"topics": null,
|
450
362
|
"unlocked_by": "two-fer",
|
451
|
-
"
|
452
|
-
"topics": [
|
453
|
-
|
454
|
-
]
|
363
|
+
"uuid": "6b51aca3-3451-4a64-ad7b-00b151d7548a"
|
455
364
|
},
|
456
365
|
{
|
457
|
-
"uuid": "dd3e6fd6-5359-4978-acd7-c39374cead4d",
|
458
|
-
"slug": "food-chain",
|
459
366
|
"core": false,
|
460
|
-
"unlocked_by": "two-fer",
|
461
367
|
"difficulty": 6,
|
462
|
-
"
|
463
|
-
|
464
|
-
|
368
|
+
"slug": "food-chain",
|
369
|
+
"topics": null,
|
370
|
+
"unlocked_by": "two-fer",
|
371
|
+
"uuid": "dd3e6fd6-5359-4978-acd7-c39374cead4d"
|
465
372
|
},
|
466
373
|
{
|
467
|
-
"uuid": "56943095-de76-40bf-b42b-fa3e70f8df5e",
|
468
|
-
"slug": "beer-song",
|
469
374
|
"core": false,
|
470
|
-
"unlocked_by": "two-fer",
|
471
375
|
"difficulty": 6,
|
472
|
-
"
|
473
|
-
|
474
|
-
|
376
|
+
"slug": "beer-song",
|
377
|
+
"topics": null,
|
378
|
+
"unlocked_by": "two-fer",
|
379
|
+
"uuid": "56943095-de76-40bf-b42b-fa3e70f8df5e"
|
475
380
|
},
|
476
381
|
{
|
477
|
-
"uuid": "5404109e-3ed9-4691-8eaf-af8b36024a44",
|
478
|
-
"slug": "queen-attack",
|
479
382
|
"core": false,
|
480
|
-
"unlocked_by": "scrabble-score",
|
481
383
|
"difficulty": 6,
|
482
|
-
"
|
483
|
-
|
484
|
-
|
384
|
+
"slug": "queen-attack",
|
385
|
+
"topics": null,
|
386
|
+
"unlocked_by": "scrabble-score",
|
387
|
+
"uuid": "5404109e-3ed9-4691-8eaf-af8b36024a44"
|
485
388
|
},
|
486
389
|
{
|
487
|
-
"uuid": "76d28d97-75d3-47eb-bb77-3d347b76f1b6",
|
488
|
-
"slug": "etl",
|
489
390
|
"core": false,
|
490
|
-
"unlocked_by": "word-count",
|
491
391
|
"difficulty": 6,
|
492
|
-
"
|
493
|
-
|
494
|
-
|
392
|
+
"slug": "etl",
|
393
|
+
"topics": null,
|
394
|
+
"unlocked_by": "word-count",
|
395
|
+
"uuid": "76d28d97-75d3-47eb-bb77-3d347b76f1b6"
|
495
396
|
},
|
496
397
|
{
|
497
|
-
"uuid": "7ba5084d-3b75-4406-a0d7-87c26387f9c0",
|
498
|
-
"slug": "linked-list",
|
499
398
|
"core": true,
|
500
|
-
"unlocked_by": null,
|
501
399
|
"difficulty": 6,
|
502
|
-
"
|
503
|
-
|
504
|
-
|
400
|
+
"slug": "linked-list",
|
401
|
+
"topics": null,
|
402
|
+
"unlocked_by": null,
|
403
|
+
"uuid": "7ba5084d-3b75-4406-a0d7-87c26387f9c0"
|
505
404
|
},
|
506
405
|
{
|
507
|
-
"uuid": "b4af5da1-601f-4b0f-bfb8-4a381851090c",
|
508
|
-
"slug": "grade-school",
|
509
406
|
"core": false,
|
510
|
-
"unlocked_by": "word-count",
|
511
407
|
"difficulty": 6,
|
512
|
-
"
|
513
|
-
|
514
|
-
|
408
|
+
"slug": "grade-school",
|
409
|
+
"topics": null,
|
410
|
+
"unlocked_by": "word-count",
|
411
|
+
"uuid": "b4af5da1-601f-4b0f-bfb8-4a381851090c"
|
515
412
|
},
|
516
413
|
{
|
517
|
-
"uuid": "993bde9d-7774-4e7a-a381-9eee75f28ecb",
|
518
|
-
"slug": "robot-simulator",
|
519
414
|
"core": false,
|
520
|
-
"unlocked_by": "secret-handshake",
|
521
415
|
"difficulty": 6,
|
522
|
-
"
|
523
|
-
|
524
|
-
|
416
|
+
"slug": "robot-simulator",
|
417
|
+
"topics": null,
|
418
|
+
"unlocked_by": "secret-handshake",
|
419
|
+
"uuid": "993bde9d-7774-4e7a-a381-9eee75f28ecb"
|
525
420
|
},
|
526
421
|
{
|
527
|
-
"uuid": "50136dc3-caf7-4fa1-b7bd-0cba1bea9176",
|
528
|
-
"slug": "binary-search",
|
529
422
|
"core": true,
|
530
|
-
"unlocked_by": null,
|
531
423
|
"difficulty": 6,
|
532
|
-
"
|
533
|
-
|
534
|
-
|
424
|
+
"slug": "binary-search",
|
425
|
+
"topics": null,
|
426
|
+
"unlocked_by": null,
|
427
|
+
"uuid": "50136dc3-caf7-4fa1-b7bd-0cba1bea9176"
|
535
428
|
},
|
536
429
|
{
|
537
|
-
"uuid": "416a1489-12af-4593-8540-0f55285c96b4",
|
538
|
-
"slug": "minesweeper",
|
539
430
|
"core": false,
|
540
|
-
"unlocked_by": "scrabble-score",
|
541
431
|
"difficulty": 6,
|
542
|
-
"
|
543
|
-
|
544
|
-
|
432
|
+
"slug": "minesweeper",
|
433
|
+
"topics": null,
|
434
|
+
"unlocked_by": "scrabble-score",
|
435
|
+
"uuid": "416a1489-12af-4593-8540-0f55285c96b4"
|
545
436
|
},
|
546
437
|
{
|
547
|
-
"uuid": "3310a3cd-c0cb-45fa-8c51-600178be904a",
|
548
|
-
"slug": "wordy",
|
549
438
|
"core": false,
|
550
|
-
"unlocked_by": "secret-handshake",
|
551
439
|
"difficulty": 6,
|
552
|
-
"
|
553
|
-
|
554
|
-
|
440
|
+
"slug": "wordy",
|
441
|
+
"topics": null,
|
442
|
+
"unlocked_by": "secret-handshake",
|
443
|
+
"uuid": "3310a3cd-c0cb-45fa-8c51-600178be904a"
|
555
444
|
},
|
556
445
|
{
|
557
|
-
"uuid": "f7c2e4b5-1995-4dfe-b827-c9aff8ac5332",
|
558
|
-
"slug": "all-your-base",
|
559
446
|
"core": false,
|
560
|
-
"unlocked_by": "saddle-points",
|
561
447
|
"difficulty": 6,
|
562
|
-
"
|
563
|
-
|
564
|
-
|
448
|
+
"slug": "all-your-base",
|
449
|
+
"topics": null,
|
450
|
+
"unlocked_by": "saddle-points",
|
451
|
+
"uuid": "f7c2e4b5-1995-4dfe-b827-c9aff8ac5332"
|
565
452
|
},
|
566
453
|
{
|
567
|
-
"uuid": "a242efc5-159d-492b-861d-12a1459fb334",
|
568
|
-
"slug": "bank-account",
|
569
454
|
"core": true,
|
570
|
-
"unlocked_by": null,
|
571
455
|
"difficulty": 6,
|
572
|
-
"
|
573
|
-
|
574
|
-
|
456
|
+
"slug": "bank-account",
|
457
|
+
"topics": null,
|
458
|
+
"unlocked_by": null,
|
459
|
+
"uuid": "a242efc5-159d-492b-861d-12a1459fb334"
|
575
460
|
},
|
576
461
|
{
|
577
|
-
"uuid": "4b3f7771-c642-4278-a3d9-2fb958f26361",
|
578
|
-
"slug": "bowling",
|
579
462
|
"core": false,
|
580
|
-
"unlocked_by": "scrabble-score",
|
581
463
|
"difficulty": 6,
|
582
|
-
"
|
583
|
-
|
584
|
-
|
464
|
+
"slug": "bowling",
|
465
|
+
"topics": null,
|
466
|
+
"unlocked_by": "scrabble-score",
|
467
|
+
"uuid": "4b3f7771-c642-4278-a3d9-2fb958f26361"
|
585
468
|
},
|
586
469
|
{
|
587
|
-
"uuid": "fb10dc2f-0ba1-44b6-8365-5e48e86d1283",
|
588
|
-
"slug": "anagram",
|
589
470
|
"core": false,
|
590
|
-
"unlocked_by": "hello-world",
|
591
471
|
"difficulty": 7,
|
592
|
-
"
|
593
|
-
|
594
|
-
|
472
|
+
"slug": "anagram",
|
473
|
+
"topics": null,
|
474
|
+
"unlocked_by": "hello-world",
|
475
|
+
"uuid": "fb10dc2f-0ba1-44b6-8365-5e48e86d1283"
|
595
476
|
},
|
596
477
|
{
|
597
|
-
"uuid": "d2aedbd7-092a-43d0-8a5e-ae3ebd5b9c7f",
|
598
|
-
"slug": "sublist",
|
599
478
|
"core": false,
|
600
|
-
"unlocked_by": "linked-list",
|
601
479
|
"difficulty": 7,
|
602
|
-
"
|
603
|
-
|
604
|
-
|
480
|
+
"slug": "sublist",
|
481
|
+
"topics": null,
|
482
|
+
"unlocked_by": "linked-list",
|
483
|
+
"uuid": "d2aedbd7-092a-43d0-8a5e-ae3ebd5b9c7f"
|
605
484
|
},
|
606
485
|
{
|
607
|
-
"uuid": "b53bde52-cb5f-4d43-86ec-18aa509d62f9",
|
608
|
-
"slug": "word-search",
|
609
486
|
"core": false,
|
610
|
-
"unlocked_by": "scrabble-score",
|
611
487
|
"difficulty": 7,
|
612
|
-
"
|
613
|
-
|
614
|
-
|
488
|
+
"slug": "word-search",
|
489
|
+
"topics": null,
|
490
|
+
"unlocked_by": "scrabble-score",
|
491
|
+
"uuid": "b53bde52-cb5f-4d43-86ec-18aa509d62f9"
|
615
492
|
},
|
616
493
|
{
|
617
|
-
"uuid": "e3e5ffe5-cfc1-467e-a28a-da0302130144",
|
618
|
-
"slug": "simple-linked-list",
|
619
494
|
"core": false,
|
620
|
-
"unlocked_by": "linked-list",
|
621
495
|
"difficulty": 7,
|
622
|
-
"
|
623
|
-
|
624
|
-
|
496
|
+
"slug": "simple-linked-list",
|
497
|
+
"topics": null,
|
498
|
+
"unlocked_by": "linked-list",
|
499
|
+
"uuid": "e3e5ffe5-cfc1-467e-a28a-da0302130144"
|
625
500
|
},
|
626
501
|
{
|
627
|
-
"uuid": "0a2d18aa-7b5e-4401-a952-b93d2060694f",
|
628
|
-
"slug": "binary-search-tree",
|
629
502
|
"core": false,
|
630
|
-
"unlocked_by": "binary-search",
|
631
503
|
"difficulty": 7,
|
632
|
-
"
|
633
|
-
|
634
|
-
|
504
|
+
"slug": "binary-search-tree",
|
505
|
+
"topics": null,
|
506
|
+
"unlocked_by": "binary-search",
|
507
|
+
"uuid": "0a2d18aa-7b5e-4401-a952-b93d2060694f"
|
635
508
|
},
|
636
509
|
{
|
637
|
-
"uuid": "602511d5-7e89-4def-b072-4dd311816810",
|
638
|
-
"slug": "meetup",
|
639
510
|
"core": false,
|
640
|
-
"unlocked_by": "gigasecond",
|
641
511
|
"difficulty": 7,
|
642
|
-
"
|
643
|
-
|
644
|
-
|
512
|
+
"slug": "meetup",
|
513
|
+
"topics": null,
|
514
|
+
"unlocked_by": "gigasecond",
|
515
|
+
"uuid": "602511d5-7e89-4def-b072-4dd311816810"
|
645
516
|
},
|
646
517
|
{
|
647
|
-
"uuid": "162bebdc-9bf2-43c0-8460-a91f5fc16147",
|
648
|
-
"slug": "crypto-square",
|
649
518
|
"core": false,
|
650
|
-
"unlocked_by": "rotational-cipher",
|
651
519
|
"difficulty": 7,
|
652
|
-
"
|
653
|
-
|
654
|
-
|
520
|
+
"slug": "crypto-square",
|
521
|
+
"topics": null,
|
522
|
+
"unlocked_by": "rotational-cipher",
|
523
|
+
"uuid": "162bebdc-9bf2-43c0-8460-a91f5fc16147"
|
655
524
|
},
|
656
525
|
{
|
657
|
-
"uuid": "57eeac00-741c-4843-907a-51f0ac5ea4cb",
|
658
|
-
"slug": "poker",
|
659
526
|
"core": false,
|
660
|
-
"unlocked_by": "scrabble-score",
|
661
527
|
"difficulty": 7,
|
528
|
+
"slug": "poker",
|
662
529
|
"topics": [
|
663
|
-
"
|
664
|
-
"
|
665
|
-
"
|
666
|
-
]
|
530
|
+
"games",
|
531
|
+
"parsing",
|
532
|
+
"sorting"
|
533
|
+
],
|
534
|
+
"unlocked_by": "scrabble-score",
|
535
|
+
"uuid": "57eeac00-741c-4843-907a-51f0ac5ea4cb"
|
667
536
|
},
|
668
537
|
{
|
669
|
-
"uuid": "97c8fcd4-85b6-41cb-9de2-b4e1b4951222",
|
670
|
-
"slug": "clock",
|
671
538
|
"core": false,
|
672
|
-
"unlocked_by": "saddle-points",
|
673
539
|
"difficulty": 7,
|
674
|
-
"
|
675
|
-
|
676
|
-
|
540
|
+
"slug": "clock",
|
541
|
+
"topics": null,
|
542
|
+
"unlocked_by": "saddle-points",
|
543
|
+
"uuid": "97c8fcd4-85b6-41cb-9de2-b4e1b4951222"
|
677
544
|
},
|
678
545
|
{
|
679
|
-
"uuid": "5cbc6a67-3a53-4aad-ae68-ff469525437f",
|
680
|
-
"slug": "ocr-numbers",
|
681
546
|
"core": false,
|
682
|
-
"unlocked_by": "robot-name",
|
683
547
|
"difficulty": 8,
|
684
|
-
"
|
685
|
-
|
686
|
-
|
548
|
+
"slug": "ocr-numbers",
|
549
|
+
"topics": null,
|
550
|
+
"unlocked_by": "robot-name",
|
551
|
+
"uuid": "5cbc6a67-3a53-4aad-ae68-ff469525437f"
|
687
552
|
},
|
688
553
|
{
|
689
|
-
"uuid": "626dc25a-062c-4053-a8c1-788e4dc44ca0",
|
690
|
-
"slug": "circular-buffer",
|
691
554
|
"core": false,
|
692
|
-
"unlocked_by": "linked-list",
|
693
555
|
"difficulty": 8,
|
556
|
+
"slug": "circular-buffer",
|
694
557
|
"topics": [
|
695
|
-
"
|
696
|
-
"
|
697
|
-
"
|
698
|
-
]
|
558
|
+
"classes",
|
559
|
+
"exception-handling",
|
560
|
+
"queues"
|
561
|
+
],
|
562
|
+
"unlocked_by": "linked-list",
|
563
|
+
"uuid": "626dc25a-062c-4053-a8c1-788e4dc44ca0"
|
699
564
|
},
|
700
565
|
{
|
701
|
-
"uuid": "64cda115-919a-4eef-9a45-9ec5d1af98cc",
|
702
|
-
"slug": "rectangles",
|
703
566
|
"core": false,
|
704
|
-
"unlocked_by": "robot-name",
|
705
567
|
"difficulty": 8,
|
706
|
-
"
|
707
|
-
|
708
|
-
|
568
|
+
"slug": "rectangles",
|
569
|
+
"topics": null,
|
570
|
+
"unlocked_by": "robot-name",
|
571
|
+
"uuid": "64cda115-919a-4eef-9a45-9ec5d1af98cc"
|
709
572
|
},
|
710
573
|
{
|
711
|
-
"uuid": "e5f05d00-fe5b-4d78-b2fa-934c1c9afb32",
|
712
|
-
"slug": "book-store",
|
713
574
|
"core": false,
|
714
|
-
"unlocked_by": "flatten-array",
|
715
575
|
"difficulty": 8,
|
716
|
-
"
|
717
|
-
|
718
|
-
|
576
|
+
"slug": "book-store",
|
577
|
+
"topics": null,
|
578
|
+
"unlocked_by": "flatten-array",
|
579
|
+
"uuid": "e5f05d00-fe5b-4d78-b2fa-934c1c9afb32"
|
719
580
|
},
|
720
581
|
{
|
721
|
-
"uuid": "f654831f-c34b-44f5-9dd5-054efbb486f2",
|
722
|
-
"slug": "simple-cipher",
|
723
582
|
"core": false,
|
724
|
-
"unlocked_by": "rotational-cipher",
|
725
583
|
"difficulty": 8,
|
726
|
-
"
|
727
|
-
|
728
|
-
|
584
|
+
"slug": "simple-cipher",
|
585
|
+
"topics": null,
|
586
|
+
"unlocked_by": "rotational-cipher",
|
587
|
+
"uuid": "f654831f-c34b-44f5-9dd5-054efbb486f2"
|
729
588
|
},
|
730
589
|
{
|
731
|
-
"uuid": "52d11278-0d65-4b5b-b387-1374fced3243",
|
732
|
-
"slug": "complex-numbers",
|
733
590
|
"core": false,
|
734
|
-
"unlocked_by": "triangle",
|
735
591
|
"difficulty": 8,
|
736
|
-
"
|
737
|
-
|
738
|
-
|
592
|
+
"slug": "complex-numbers",
|
593
|
+
"topics": null,
|
594
|
+
"unlocked_by": "triangle",
|
595
|
+
"uuid": "52d11278-0d65-4b5b-b387-1374fced3243"
|
739
596
|
},
|
740
597
|
{
|
741
|
-
"uuid": "a9836565-5c39-4285-b83a-53408be36ccc",
|
742
|
-
"slug": "list-ops",
|
743
598
|
"core": false,
|
744
|
-
"unlocked_by": "linked-list",
|
745
599
|
"difficulty": 8,
|
746
|
-
"
|
747
|
-
|
748
|
-
|
600
|
+
"slug": "list-ops",
|
601
|
+
"topics": null,
|
602
|
+
"unlocked_by": "linked-list",
|
603
|
+
"uuid": "a9836565-5c39-4285-b83a-53408be36ccc"
|
749
604
|
},
|
750
605
|
{
|
751
|
-
"uuid": "bac1f4bc-eea9-43c1-8e95-097347f5925e",
|
752
|
-
"slug": "change",
|
753
606
|
"core": false,
|
754
|
-
"unlocked_by": "flatten-array",
|
755
607
|
"difficulty": 8,
|
756
|
-
"
|
757
|
-
|
758
|
-
|
608
|
+
"slug": "change",
|
609
|
+
"topics": null,
|
610
|
+
"unlocked_by": "flatten-array",
|
611
|
+
"uuid": "bac1f4bc-eea9-43c1-8e95-097347f5925e"
|
759
612
|
},
|
760
613
|
{
|
761
|
-
"uuid": "873c05de-b5f5-4c5b-97f0-d1ede8a82832",
|
762
|
-
"slug": "palindrome-products",
|
763
614
|
"core": false,
|
764
|
-
"unlocked_by": "saddle-points",
|
765
615
|
"difficulty": 8,
|
766
|
-
"
|
767
|
-
|
768
|
-
|
616
|
+
"slug": "palindrome-products",
|
617
|
+
"topics": null,
|
618
|
+
"unlocked_by": "saddle-points",
|
619
|
+
"uuid": "873c05de-b5f5-4c5b-97f0-d1ede8a82832"
|
769
620
|
},
|
770
621
|
{
|
771
|
-
"uuid": "88505f95-89e5-4a08-8ed2-208eb818cdf1",
|
772
|
-
"slug": "pythagorean-triplet",
|
773
622
|
"core": false,
|
774
|
-
"unlocked_by": "triangle",
|
775
623
|
"difficulty": 9,
|
776
|
-
"
|
777
|
-
|
778
|
-
|
624
|
+
"slug": "pythagorean-triplet",
|
625
|
+
"topics": null,
|
626
|
+
"unlocked_by": "triangle",
|
627
|
+
"uuid": "88505f95-89e5-4a08-8ed2-208eb818cdf1"
|
779
628
|
},
|
780
629
|
{
|
781
|
-
"uuid": "f0c0316d-3fb5-455e-952a-91161e7fb298",
|
782
|
-
"slug": "forth",
|
783
630
|
"core": false,
|
784
|
-
"unlocked_by": "secret-handshake",
|
785
631
|
"difficulty": 9,
|
786
|
-
"
|
787
|
-
|
788
|
-
|
632
|
+
"slug": "forth",
|
633
|
+
"topics": null,
|
634
|
+
"unlocked_by": "secret-handshake",
|
635
|
+
"uuid": "f0c0316d-3fb5-455e-952a-91161e7fb298"
|
789
636
|
},
|
790
637
|
{
|
791
|
-
"uuid": "377fe38b-08ad-4f3a-8118-a43c10f7b9b2",
|
792
|
-
"slug": "custom-set",
|
793
638
|
"core": false,
|
794
|
-
"unlocked_by": "linked-list",
|
795
639
|
"difficulty": 10,
|
796
|
-
"
|
797
|
-
|
798
|
-
|
640
|
+
"slug": "custom-set",
|
641
|
+
"topics": null,
|
642
|
+
"unlocked_by": "linked-list",
|
643
|
+
"uuid": "377fe38b-08ad-4f3a-8118-a43c10f7b9b2"
|
799
644
|
},
|
800
645
|
{
|
801
|
-
"
|
646
|
+
"deprecated": true,
|
802
647
|
"slug": "accumulate",
|
803
|
-
"
|
648
|
+
"uuid": "e58c29d2-80a7-40ef-bed0-4a184ae35f34"
|
804
649
|
},
|
805
650
|
{
|
806
|
-
"
|
651
|
+
"deprecated": true,
|
807
652
|
"slug": "binary",
|
808
|
-
"
|
653
|
+
"uuid": "9ea6e0fa-b91d-4d17-ac8f-6d2dc30fdd44"
|
809
654
|
},
|
810
655
|
{
|
811
|
-
"
|
656
|
+
"deprecated": true,
|
812
657
|
"slug": "hexadecimal",
|
813
|
-
"
|
658
|
+
"uuid": "6fe53a08-c123-465d-864a-ef18217203c4"
|
814
659
|
},
|
815
660
|
{
|
816
|
-
"
|
661
|
+
"deprecated": true,
|
817
662
|
"slug": "octal",
|
818
|
-
"
|
663
|
+
"uuid": "14a29e82-f9b1-4662-b678-06992e306c01"
|
819
664
|
},
|
820
665
|
{
|
821
|
-
"
|
666
|
+
"deprecated": true,
|
822
667
|
"slug": "strain",
|
823
|
-
"
|
668
|
+
"uuid": "2d195cd9-1814-490a-8dd6-a2c676f1d4cd"
|
824
669
|
},
|
825
670
|
{
|
826
|
-
"
|
671
|
+
"deprecated": true,
|
827
672
|
"slug": "trinary",
|
828
|
-
"
|
673
|
+
"uuid": "ee3a8abe-6b19-4b47-9cf6-4d39ae915fb7"
|
829
674
|
}
|
830
675
|
],
|
831
676
|
"foregone": [
|
832
677
|
"leap",
|
833
678
|
"grains",
|
834
679
|
"say"
|
835
|
-
]
|
836
|
-
|
680
|
+
],
|
681
|
+
"language": "Java"
|
682
|
+
}
|