trackler 2.2.1.14 → 2.2.1.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/trackler/version.rb +1 -1
- data/tracks/c/docs/INSTALLATION.md +1 -1
- data/tracks/csharp/exercises/binary-search/BinarySearchTest.cs +2 -2
- data/tracks/csharp/exercises/poker/Example.cs +69 -20
- data/tracks/csharp/exercises/poker/PokerTest.cs +152 -82
- data/tracks/csharp/exercises/raindrops/RaindropsTest.cs +4 -4
- data/tracks/csharp/exercises/roman-numerals/RomanNumeralsTest.cs +4 -4
- data/tracks/csharp/exercises/word-count/Example.cs +2 -2
- data/tracks/csharp/exercises/word-count/WordCount.cs +2 -2
- data/tracks/csharp/exercises/word-count/WordCountTest.cs +85 -87
- data/tracks/csharp/generators/Exercises/Pangram.cs +0 -1
- data/tracks/csharp/generators/Exercises/Poker.cs +19 -0
- data/tracks/csharp/generators/Exercises/RomanNumerals.cs +0 -1
- data/tracks/csharp/generators/Exercises/WordCount.cs +27 -0
- data/tracks/csharp/generators/Output/NameExtensions.cs +6 -4
- data/tracks/delphi/{docs → exercises/hello-world}/GETTING_STARTED_GUIDE.md +0 -0
- data/tracks/go/config.json +629 -618
- data/tracks/go/config/maintainers.json +33 -33
- data/tracks/go/exercises/accumulate/README.md +0 -3
- data/tracks/go/exercises/hello-world/example.go +0 -2
- data/tracks/go/exercises/hello-world/hello_test.go +0 -20
- data/tracks/go/exercises/hello-world/hello_world.go +1 -36
- data/tracks/go/exercises/leap/leap.go +0 -1
- data/tracks/go/exercises/leap/leap_test.go +7 -3
- data/tracks/go/exercises/two-fer/README.md +66 -0
- data/tracks/go/exercises/two-fer/example.go +9 -0
- data/tracks/go/exercises/{hello-world/example_helloworld_test.go → two-fer/example_two_fer_test.go} +9 -9
- data/tracks/go/exercises/two-fer/two_fer.go +15 -0
- data/tracks/go/exercises/two-fer/two_fer_test.go +20 -0
- data/tracks/go/gen/gen.go +11 -10
- data/tracks/python/exercises/change/change_test.py +7 -2
- data/tracks/rust/config.json +1 -0
- data/tracks/rust/docs/ABOUT.md +1 -1
- data/tracks/scala/exercises/nth-prime/example.scala +2 -2
- data/tracks/scala/exercises/nth-prime/src/test/scala/NthPrimeTest.scala +29 -0
- data/tracks/scala/testgen/src/main/scala/NthPrimeTestGenerator.scala +34 -0
- metadata +12 -7
- data/tracks/fsharp/appveyor.yml +0 -4
- data/tracks/fsharp/circle.yml +0 -16
- data/tracks/scala/exercises/nth-prime/src/test/scala/PrimeTest.scala +0 -37
@@ -59,13 +59,13 @@ public void The_sound_for_14_is_plong_as_it_has_a_factor_of_7()
|
|
59
59
|
}
|
60
60
|
|
61
61
|
[Fact(Skip = "Remove to run test")]
|
62
|
-
public void
|
62
|
+
public void The_sound_for_15_is_plingplang_as_it_has_factors_3_and_5()
|
63
63
|
{
|
64
64
|
Assert.Equal("PlingPlang", Raindrops.Convert(15));
|
65
65
|
}
|
66
66
|
|
67
67
|
[Fact(Skip = "Remove to run test")]
|
68
|
-
public void
|
68
|
+
public void The_sound_for_21_is_plingplong_as_it_has_factors_3_and_7()
|
69
69
|
{
|
70
70
|
Assert.Equal("PlingPlong", Raindrops.Convert(21));
|
71
71
|
}
|
@@ -83,7 +83,7 @@ public void The_sound_for_27_is_pling_as_it_has_a_factor_3()
|
|
83
83
|
}
|
84
84
|
|
85
85
|
[Fact(Skip = "Remove to run test")]
|
86
|
-
public void
|
86
|
+
public void The_sound_for_35_is_plangplong_as_it_has_factors_5_and_7()
|
87
87
|
{
|
88
88
|
Assert.Equal("PlangPlong", Raindrops.Convert(35));
|
89
89
|
}
|
@@ -101,7 +101,7 @@ public void The_sound_for_52_is_52()
|
|
101
101
|
}
|
102
102
|
|
103
103
|
[Fact(Skip = "Remove to run test")]
|
104
|
-
public void
|
104
|
+
public void The_sound_for_105_is_plingplangplong_as_it_has_factors_3_5_and_7()
|
105
105
|
{
|
106
106
|
Assert.Equal("PlingPlangPlong", Raindrops.Convert(105));
|
107
107
|
}
|
@@ -11,13 +11,13 @@ public void Number_1_is_a_single_i()
|
|
11
11
|
}
|
12
12
|
|
13
13
|
[Fact(Skip = "Remove to run test")]
|
14
|
-
public void
|
14
|
+
public void Number_2_is_two_is()
|
15
15
|
{
|
16
16
|
Assert.Equal("II", 2.ToRoman());
|
17
17
|
}
|
18
18
|
|
19
19
|
[Fact(Skip = "Remove to run test")]
|
20
|
-
public void
|
20
|
+
public void Number_3_is_three_is()
|
21
21
|
{
|
22
22
|
Assert.Equal("III", 3.ToRoman());
|
23
23
|
}
|
@@ -47,7 +47,7 @@ public void Number_9_being_10_1_is_ix()
|
|
47
47
|
}
|
48
48
|
|
49
49
|
[Fact(Skip = "Remove to run test")]
|
50
|
-
public void
|
50
|
+
public void Number_20_is_two_xs()
|
51
51
|
{
|
52
52
|
Assert.Equal("XXVII", 27.ToRoman());
|
53
53
|
}
|
@@ -107,7 +107,7 @@ public void Number_1000_is_a_single_m()
|
|
107
107
|
}
|
108
108
|
|
109
109
|
[Fact(Skip = "Remove to run test")]
|
110
|
-
public void
|
110
|
+
public void Number_3000_is_three_ms()
|
111
111
|
{
|
112
112
|
Assert.Equal("MMM", 3000.ToRoman());
|
113
113
|
}
|
@@ -2,9 +2,9 @@
|
|
2
2
|
using System.Text.RegularExpressions;
|
3
3
|
using System.Collections.Generic;
|
4
4
|
|
5
|
-
public static class
|
5
|
+
public static class WordCount
|
6
6
|
{
|
7
|
-
public static IDictionary<string, int>
|
7
|
+
public static IDictionary<string, int> Countwords(string phrase)
|
8
8
|
{
|
9
9
|
if (phrase == null) throw new ArgumentNullException("phrase");
|
10
10
|
|
@@ -1,9 +1,9 @@
|
|
1
1
|
using System;
|
2
2
|
using System.Collections.Generic;
|
3
3
|
|
4
|
-
public static class
|
4
|
+
public static class WordCount
|
5
5
|
{
|
6
|
-
public static IDictionary<string, int>
|
6
|
+
public static IDictionary<string, int> Countwords(string phrase)
|
7
7
|
{
|
8
8
|
throw new NotImplementedException("You need to implement this function.");
|
9
9
|
}
|
@@ -1,145 +1,143 @@
|
|
1
|
-
|
1
|
+
// This file was auto-generated based on version 1.0.0 of the canonical data.
|
2
|
+
|
2
3
|
using Xunit;
|
4
|
+
using System.Collections.Generic;
|
3
5
|
|
4
6
|
public class WordCountTest
|
5
7
|
{
|
6
8
|
[Fact]
|
7
9
|
public void Count_one_word()
|
8
10
|
{
|
9
|
-
var
|
10
|
-
|
11
|
+
var actual = WordCount.Countwords("word");
|
12
|
+
var expected = new Dictionary<string, int>
|
13
|
+
{
|
14
|
+
["word"] = 1
|
11
15
|
};
|
12
|
-
|
13
|
-
Assert.Equal(counts, Phrase.WordCount("word"));
|
16
|
+
Assert.Equal(expected, actual);
|
14
17
|
}
|
15
18
|
|
16
19
|
[Fact(Skip = "Remove to run test")]
|
17
|
-
public void
|
20
|
+
public void Count_one_of_each_word()
|
18
21
|
{
|
19
|
-
var
|
20
|
-
|
21
|
-
|
22
|
-
|
22
|
+
var actual = WordCount.Countwords("one of each");
|
23
|
+
var expected = new Dictionary<string, int>
|
24
|
+
{
|
25
|
+
["one"] = 1,
|
26
|
+
["of"] = 1,
|
27
|
+
["each"] = 1
|
23
28
|
};
|
24
|
-
|
25
|
-
Assert.Equal(counts, Phrase.WordCount("one of each"));
|
29
|
+
Assert.Equal(expected, actual);
|
26
30
|
}
|
27
31
|
|
28
32
|
[Fact(Skip = "Remove to run test")]
|
29
|
-
public void
|
33
|
+
public void Multiple_occurrences_of_a_word()
|
30
34
|
{
|
31
|
-
var
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
35
|
+
var actual = WordCount.Countwords("one fish two fish red fish blue fish");
|
36
|
+
var expected = new Dictionary<string, int>
|
37
|
+
{
|
38
|
+
["one"] = 1,
|
39
|
+
["fish"] = 4,
|
40
|
+
["two"] = 1,
|
41
|
+
["red"] = 1,
|
42
|
+
["blue"] = 1
|
37
43
|
};
|
38
|
-
|
39
|
-
Assert.Equal(counts, Phrase.WordCount("one fish two fish red fish blue fish"));
|
44
|
+
Assert.Equal(expected, actual);
|
40
45
|
}
|
41
46
|
|
42
47
|
[Fact(Skip = "Remove to run test")]
|
43
|
-
public void
|
48
|
+
public void Handles_cramped_lists()
|
44
49
|
{
|
45
|
-
var
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
{ "men", 1 },
|
50
|
+
var actual = WordCount.Countwords("one,two,three");
|
51
|
+
var expected = new Dictionary<string, int>
|
52
|
+
{
|
53
|
+
["one"] = 1,
|
54
|
+
["two"] = 1,
|
55
|
+
["three"] = 1
|
52
56
|
};
|
53
|
-
|
54
|
-
Assert.Equal(counts, Phrase.WordCount("all the kings horses and all the kings men"));
|
57
|
+
Assert.Equal(expected, actual);
|
55
58
|
}
|
56
59
|
|
57
60
|
[Fact(Skip = "Remove to run test")]
|
58
|
-
public void
|
61
|
+
public void Handles_expanded_lists()
|
59
62
|
{
|
60
|
-
var
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
63
|
+
var actual = WordCount.Countwords("one,\ntwo,\nthree");
|
64
|
+
var expected = new Dictionary<string, int>
|
65
|
+
{
|
66
|
+
["one"] = 1,
|
67
|
+
["two"] = 1,
|
68
|
+
["three"] = 1
|
66
69
|
};
|
67
|
-
|
68
|
-
Assert.Equal(counts, Phrase.WordCount("car : carpet as java : javascript!!&@$%^&"));
|
70
|
+
Assert.Equal(expected, actual);
|
69
71
|
}
|
70
72
|
|
71
73
|
[Fact(Skip = "Remove to run test")]
|
72
|
-
public void
|
74
|
+
public void Ignore_punctuation()
|
73
75
|
{
|
74
|
-
var
|
75
|
-
|
76
|
-
|
77
|
-
|
76
|
+
var actual = WordCount.Countwords("car: carpet as java: javascript!!&@$%^&");
|
77
|
+
var expected = new Dictionary<string, int>
|
78
|
+
{
|
79
|
+
["car"] = 1,
|
80
|
+
["carpet"] = 1,
|
81
|
+
["as"] = 1,
|
82
|
+
["java"] = 1,
|
83
|
+
["javascript"] = 1
|
78
84
|
};
|
79
|
-
|
80
|
-
Assert.Equal(counts, Phrase.WordCount("one,two,three"));
|
85
|
+
Assert.Equal(expected, actual);
|
81
86
|
}
|
82
87
|
|
83
88
|
[Fact(Skip = "Remove to run test")]
|
84
89
|
public void Include_numbers()
|
85
90
|
{
|
86
|
-
var
|
87
|
-
|
88
|
-
|
89
|
-
|
91
|
+
var actual = WordCount.Countwords("testing, 1, 2 testing");
|
92
|
+
var expected = new Dictionary<string, int>
|
93
|
+
{
|
94
|
+
["testing"] = 2,
|
95
|
+
["1"] = 1,
|
96
|
+
["2"] = 1
|
90
97
|
};
|
91
|
-
|
92
|
-
Assert.Equal(counts, Phrase.WordCount("testing, 1, 2 testing"));
|
98
|
+
Assert.Equal(expected, actual);
|
93
99
|
}
|
94
100
|
|
95
101
|
[Fact(Skip = "Remove to run test")]
|
96
102
|
public void Normalize_case()
|
97
103
|
{
|
98
|
-
var
|
99
|
-
|
104
|
+
var actual = WordCount.Countwords("go Go GO Stop stop");
|
105
|
+
var expected = new Dictionary<string, int>
|
106
|
+
{
|
107
|
+
["go"] = 3,
|
108
|
+
["stop"] = 2
|
100
109
|
};
|
101
|
-
|
102
|
-
Assert.Equal(counts, Phrase.WordCount("go Go GO"));
|
110
|
+
Assert.Equal(expected, actual);
|
103
111
|
}
|
104
112
|
|
105
113
|
[Fact(Skip = "Remove to run test")]
|
106
114
|
public void With_apostrophes()
|
107
115
|
{
|
108
|
-
var
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
116
|
+
var actual = WordCount.Countwords("First: don't laugh. Then: don't cry.");
|
117
|
+
var expected = new Dictionary<string, int>
|
118
|
+
{
|
119
|
+
["first"] = 1,
|
120
|
+
["don't"] = 2,
|
121
|
+
["laugh"] = 1,
|
122
|
+
["then"] = 1,
|
123
|
+
["cry"] = 1
|
114
124
|
};
|
115
|
-
|
116
|
-
Assert.Equal(counts, Phrase.WordCount("First: don't laugh. Then: don't cry."));
|
125
|
+
Assert.Equal(expected, actual);
|
117
126
|
}
|
118
127
|
|
119
128
|
[Fact(Skip = "Remove to run test")]
|
120
|
-
public void
|
129
|
+
public void With_quotations()
|
121
130
|
{
|
122
|
-
var
|
123
|
-
|
131
|
+
var actual = WordCount.Countwords("Joe can't tell between 'large' and large.");
|
132
|
+
var expected = new Dictionary<string, int>
|
133
|
+
{
|
134
|
+
["joe"] = 1,
|
135
|
+
["can't"] = 1,
|
136
|
+
["tell"] = 1,
|
137
|
+
["between"] = 1,
|
138
|
+
["large"] = 2,
|
139
|
+
["and"] = 1
|
124
140
|
};
|
125
|
-
|
126
|
-
Assert.Equal(counts, Phrase.WordCount("go ' Go '' GO"));
|
141
|
+
Assert.Equal(expected, actual);
|
127
142
|
}
|
128
|
-
|
129
|
-
[Fact(Skip = "Remove to run test")]
|
130
|
-
public void With_apostrophes_as_quotes()
|
131
|
-
{
|
132
|
-
var counts = new Dictionary<string, int> {
|
133
|
-
{ "she", 1 },
|
134
|
-
{ "said", 1 },
|
135
|
-
{ "let's", 1 },
|
136
|
-
{ "meet", 1 },
|
137
|
-
{ "at", 1 },
|
138
|
-
{ "twelve", 1 },
|
139
|
-
{ "o'clock", 1 },
|
140
|
-
};
|
141
|
-
|
142
|
-
Assert.Equal(counts, Phrase.WordCount("She said, 'let's meet at twelve o'clock'"));
|
143
|
-
}
|
144
|
-
|
145
143
|
}
|
@@ -8,7 +8,6 @@ protected override void UpdateCanonicalData(CanonicalData canonicalData)
|
|
8
8
|
{
|
9
9
|
foreach (var canonicalDataCase in CanonicalData.Cases)
|
10
10
|
{
|
11
|
-
canonicalDataCase.Description = canonicalDataCase.Description.Replace("'", string.Empty);
|
12
11
|
canonicalDataCase.UseVariablesForInput = true;
|
13
12
|
canonicalDataCase.Input["input"] = ((string)canonicalDataCase.Input["input"]).Replace("\"", "\\\"");
|
14
13
|
}
|
@@ -0,0 +1,19 @@
|
|
1
|
+
using Generators.Input;
|
2
|
+
|
3
|
+
namespace Generators.Exercises
|
4
|
+
{
|
5
|
+
public class Poker : Exercise
|
6
|
+
{
|
7
|
+
protected override void UpdateCanonicalData(CanonicalData canonicalData)
|
8
|
+
{
|
9
|
+
foreach (var canonicalDataCase in canonicalData.Cases)
|
10
|
+
{
|
11
|
+
canonicalDataCase.UseVariableForExpected = true;
|
12
|
+
canonicalDataCase.UseVariableForTested = true;
|
13
|
+
|
14
|
+
canonicalDataCase.Expected = canonicalDataCase.Expected.ConvertToEnumerable<string>();
|
15
|
+
canonicalDataCase.Input["input"] = canonicalDataCase.Input["input"].ConvertToEnumerable<string>();
|
16
|
+
}
|
17
|
+
}
|
18
|
+
}
|
19
|
+
}
|
@@ -10,7 +10,6 @@ protected override void UpdateCanonicalData(CanonicalData canonicalData)
|
|
10
10
|
{
|
11
11
|
canonicalDataCase.TestedMethodType = TestedMethodType.Extension;
|
12
12
|
canonicalDataCase.Property = "ToRoman";
|
13
|
-
canonicalDataCase.Description = "Number_" + canonicalDataCase.Description;
|
14
13
|
}
|
15
14
|
}
|
16
15
|
}
|
@@ -0,0 +1,27 @@
|
|
1
|
+
using Generators.Input;
|
2
|
+
using Newtonsoft.Json.Linq;
|
3
|
+
using System.Collections.Generic;
|
4
|
+
|
5
|
+
namespace Generators.Exercises
|
6
|
+
{
|
7
|
+
public class WordCount : Exercise
|
8
|
+
{
|
9
|
+
protected override void UpdateCanonicalData(CanonicalData canonicalData)
|
10
|
+
{
|
11
|
+
foreach (var canonicalDataCase in CanonicalData.Cases)
|
12
|
+
{
|
13
|
+
canonicalDataCase.UseVariableForExpected = true;
|
14
|
+
canonicalDataCase.UseVariableForTested = true;
|
15
|
+
canonicalDataCase.Expected = ((JObject)canonicalDataCase.Expected).ToObject<Dictionary<string, int>>();
|
16
|
+
}
|
17
|
+
}
|
18
|
+
|
19
|
+
protected override HashSet<string> GetUsingNamespaces()
|
20
|
+
{
|
21
|
+
var usingNamespaces = base.GetUsingNamespaces();
|
22
|
+
usingNamespaces.Add(typeof(Dictionary<string, int>).Namespace);
|
23
|
+
|
24
|
+
return usingNamespaces;
|
25
|
+
}
|
26
|
+
}
|
27
|
+
}
|
@@ -14,10 +14,12 @@ public static class NameExtensions
|
|
14
14
|
|
15
15
|
public static string ToTestMethodName(this string input)
|
16
16
|
{
|
17
|
-
var methodName =
|
18
|
-
|
19
|
-
|
20
|
-
|
17
|
+
var methodName = input
|
18
|
+
.Replace(":", " is")
|
19
|
+
.Replace("'", "");
|
20
|
+
|
21
|
+
methodName = Regex.Replace(methodName, @"[^\w]+", "_", RegexOptions.Compiled)
|
22
|
+
.Transform(To.TitleCase);
|
21
23
|
|
22
24
|
if (char.IsDigit(methodName[0]))
|
23
25
|
return "Number_" + methodName;
|
File without changes
|
data/tracks/go/config.json
CHANGED
@@ -1,1048 +1,1059 @@
|
|
1
1
|
{
|
2
|
-
"language": "Go",
|
3
2
|
"active": true,
|
4
3
|
"blurb": "Go is a compiled, open source programming language with a small, consistent syntax, a powerful standard library, and fantastic tooling. It's a great fit for web backends and command-line tools.",
|
5
|
-
"ignore_pattern": "example(?!.*test)",
|
6
|
-
"foregone": [
|
7
|
-
"space-age",
|
8
|
-
"linked-list",
|
9
|
-
"simple-linked-list"
|
10
|
-
],
|
11
4
|
"exercises": [
|
12
5
|
{
|
13
|
-
"uuid": "19957346-dedf-441e-85ea-656cac0d96d8",
|
14
|
-
"slug": "hello-world",
|
15
6
|
"core": true,
|
16
|
-
"unlocked_by": null,
|
17
7
|
"difficulty": 1,
|
8
|
+
"slug": "hello-world",
|
18
9
|
"topics": [
|
19
|
-
"
|
20
|
-
]
|
10
|
+
"strings"
|
11
|
+
],
|
12
|
+
"unlocked_by": null,
|
13
|
+
"uuid": "19957346-dedf-441e-85ea-656cac0d96d8"
|
21
14
|
},
|
22
15
|
{
|
23
|
-
"uuid": "52582415-8f7f-4ac5-857f-5c160ec48134",
|
24
|
-
"slug": "hamming",
|
25
16
|
"core": true,
|
26
|
-
"unlocked_by":null,
|
27
17
|
"difficulty": 1,
|
18
|
+
"slug": "two-fer",
|
28
19
|
"topics": [
|
29
|
-
"
|
30
|
-
"
|
31
|
-
|
32
|
-
|
20
|
+
"control-flow-(conditionals)",
|
21
|
+
"strings"
|
22
|
+
],
|
23
|
+
"unlocked_by": null,
|
24
|
+
"uuid": "dc4ad67d-0fe4-0880-5a13-3aebb8759bcc3095de1"
|
33
25
|
},
|
34
26
|
{
|
35
|
-
"uuid": "2f51e32a-9b1f-4100-9eec-517115c858e9",
|
36
|
-
"slug": "raindrops",
|
37
27
|
"core": true,
|
38
|
-
"unlocked_by": null,
|
39
28
|
"difficulty": 1,
|
29
|
+
"slug": "hamming",
|
40
30
|
"topics": [
|
41
|
-
"
|
42
|
-
"
|
43
|
-
"
|
44
|
-
]
|
31
|
+
"control-flow-(loops)",
|
32
|
+
"equality",
|
33
|
+
"strings"
|
34
|
+
],
|
35
|
+
"unlocked_by": null,
|
36
|
+
"uuid": "52582415-8f7f-4ac5-857f-5c160ec48134"
|
45
37
|
},
|
46
38
|
{
|
47
|
-
"uuid": "20cbd8f9-f8e3-4767-a0f5-94810ba3f902",
|
48
|
-
"slug": "scrabble-score",
|
49
39
|
"core": true,
|
50
|
-
"unlocked_by": null,
|
51
40
|
"difficulty": 1,
|
41
|
+
"slug": "raindrops",
|
52
42
|
"topics": [
|
53
|
-
"
|
54
|
-
"
|
55
|
-
"
|
56
|
-
]
|
43
|
+
"control-flow-(conditionals)",
|
44
|
+
"filtering",
|
45
|
+
"strings"
|
46
|
+
],
|
47
|
+
"unlocked_by": null,
|
48
|
+
"uuid": "2f51e32a-9b1f-4100-9eec-517115c858e9"
|
57
49
|
},
|
58
50
|
{
|
59
|
-
"uuid": "73da448c-33b7-4565-ab48-1de5020d65ab",
|
60
|
-
"slug": "etl",
|
61
51
|
"core": true,
|
62
|
-
"unlocked_by": null,
|
63
52
|
"difficulty": 1,
|
53
|
+
"slug": "scrabble-score",
|
64
54
|
"topics": [
|
65
|
-
"
|
66
|
-
"
|
67
|
-
"
|
68
|
-
]
|
55
|
+
"control-flow-(loops)",
|
56
|
+
"maps",
|
57
|
+
"strings"
|
58
|
+
],
|
59
|
+
"unlocked_by": null,
|
60
|
+
"uuid": "20cbd8f9-f8e3-4767-a0f5-94810ba3f902"
|
69
61
|
},
|
70
62
|
{
|
71
|
-
"uuid": "19628c8a-a89f-457e-9526-3d400024a927",
|
72
|
-
"slug": "difference-of-squares",
|
73
63
|
"core": true,
|
64
|
+
"difficulty": 1,
|
65
|
+
"slug": "etl",
|
66
|
+
"topics": [
|
67
|
+
"control-flow-(loops)",
|
68
|
+
"maps",
|
69
|
+
"transforming"
|
70
|
+
],
|
74
71
|
"unlocked_by": null,
|
72
|
+
"uuid": "73da448c-33b7-4565-ab48-1de5020d65ab"
|
73
|
+
},
|
74
|
+
{
|
75
|
+
"core": true,
|
75
76
|
"difficulty": 2,
|
77
|
+
"slug": "difference-of-squares",
|
76
78
|
"topics": [
|
77
|
-
"
|
78
|
-
"
|
79
|
-
]
|
79
|
+
"algorithms",
|
80
|
+
"mathematics"
|
81
|
+
],
|
82
|
+
"unlocked_by": null,
|
83
|
+
"uuid": "19628c8a-a89f-457e-9526-3d400024a927"
|
80
84
|
},
|
81
85
|
{
|
82
|
-
"uuid": "7fbb0d9d-71d1-4654-8ca0-bb07ddbe6cb5",
|
83
|
-
"slug": "strain",
|
84
86
|
"core": true,
|
85
|
-
"unlocked_by": null,
|
86
87
|
"difficulty": 2,
|
88
|
+
"slug": "strain",
|
87
89
|
"topics": [
|
88
|
-
"
|
89
|
-
"
|
90
|
-
"
|
91
|
-
]
|
90
|
+
"arrays",
|
91
|
+
"control-flow-(loops)",
|
92
|
+
"filtering"
|
93
|
+
],
|
94
|
+
"unlocked_by": null,
|
95
|
+
"uuid": "7fbb0d9d-71d1-4654-8ca0-bb07ddbe6cb5"
|
92
96
|
},
|
93
97
|
{
|
94
|
-
"uuid": "b39d9e79-dee0-4c70-a6c3-114bee8083f2",
|
95
|
-
"slug": "acronym",
|
96
98
|
"core": true,
|
97
|
-
"unlocked_by": null,
|
98
99
|
"difficulty": 3,
|
100
|
+
"slug": "acronym",
|
99
101
|
"topics": [
|
100
|
-
"
|
101
|
-
"
|
102
|
-
"
|
103
|
-
]
|
102
|
+
"regular-expressions",
|
103
|
+
"strings",
|
104
|
+
"transforming"
|
105
|
+
],
|
106
|
+
"unlocked_by": null,
|
107
|
+
"uuid": "b39d9e79-dee0-4c70-a6c3-114bee8083f2"
|
104
108
|
},
|
105
109
|
{
|
106
|
-
"uuid": "6769557a-33fa-4257-adbf-e66dc8c06f85",
|
107
|
-
"slug": "triangle",
|
108
110
|
"core": true,
|
109
|
-
"unlocked_by": null,
|
110
111
|
"difficulty": 3,
|
112
|
+
"slug": "triangle",
|
111
113
|
"topics": [
|
112
|
-
"
|
113
|
-
"
|
114
|
-
"
|
115
|
-
]
|
114
|
+
"booleans",
|
115
|
+
"control-flow-(conditionals)",
|
116
|
+
"logic"
|
117
|
+
],
|
118
|
+
"unlocked_by": null,
|
119
|
+
"uuid": "6769557a-33fa-4257-adbf-e66dc8c06f85"
|
116
120
|
},
|
117
121
|
{
|
118
|
-
"uuid": "7d2de21e-bf67-495e-8d90-05e1a35d5b99",
|
119
|
-
"slug": "clock",
|
120
122
|
"core": true,
|
121
|
-
"unlocked_by": null,
|
122
123
|
"difficulty": 3,
|
124
|
+
"slug": "clock",
|
123
125
|
"topics": [
|
124
|
-
"
|
125
|
-
"
|
126
|
-
"
|
127
|
-
"
|
128
|
-
]
|
126
|
+
"equality",
|
127
|
+
"mathematics",
|
128
|
+
"text-formatting",
|
129
|
+
"time"
|
130
|
+
],
|
131
|
+
"unlocked_by": null,
|
132
|
+
"uuid": "7d2de21e-bf67-495e-8d90-05e1a35d5b99"
|
129
133
|
},
|
130
134
|
{
|
131
|
-
"uuid": "b765fde9-84b4-44cc-bdf1-f66ac1ab8e2c",
|
132
|
-
"slug": "word-count",
|
133
135
|
"core": true,
|
134
|
-
"unlocked_by": null,
|
135
136
|
"difficulty": 3,
|
137
|
+
"slug": "word-count",
|
136
138
|
"topics": [
|
137
|
-
"
|
138
|
-
"
|
139
|
-
]
|
139
|
+
"sorting",
|
140
|
+
"strings"
|
141
|
+
],
|
142
|
+
"unlocked_by": null,
|
143
|
+
"uuid": "b765fde9-84b4-44cc-bdf1-f66ac1ab8e2c"
|
140
144
|
},
|
141
145
|
{
|
142
|
-
"uuid": "bf366b19-63bf-4a75-9a35-08b881af6951",
|
143
|
-
"slug": "parallel-letter-frequency",
|
144
146
|
"core": true,
|
145
|
-
"unlocked_by": null,
|
146
147
|
"difficulty": 3,
|
148
|
+
"slug": "parallel-letter-frequency",
|
147
149
|
"topics": [
|
148
|
-
"
|
149
|
-
]
|
150
|
+
"concurrency"
|
151
|
+
],
|
152
|
+
"unlocked_by": null,
|
153
|
+
"uuid": "bf366b19-63bf-4a75-9a35-08b881af6951"
|
150
154
|
},
|
151
155
|
{
|
152
|
-
"uuid": "b4f6b08b-a132-447b-b447-66bf37ab20c6",
|
153
|
-
"slug": "grains",
|
154
156
|
"core": true,
|
155
|
-
"unlocked_by": null,
|
156
157
|
"difficulty": 2,
|
158
|
+
"slug": "grains",
|
157
159
|
"topics": [
|
158
|
-
"
|
159
|
-
"
|
160
|
-
"
|
161
|
-
"
|
162
|
-
"
|
163
|
-
]
|
160
|
+
"bitwise-operations",
|
161
|
+
"control-flow-(if-else-statements)",
|
162
|
+
"integers",
|
163
|
+
"mathematics",
|
164
|
+
"type-conversion"
|
165
|
+
],
|
166
|
+
"unlocked_by": null,
|
167
|
+
"uuid": "b4f6b08b-a132-447b-b447-66bf37ab20c6"
|
164
168
|
},
|
165
169
|
{
|
166
|
-
"uuid": "2c5fb577-a9ce-4c4c-8fc8-fffb38d020d6",
|
167
|
-
"slug": "series",
|
168
170
|
"core": true,
|
169
|
-
"unlocked_by": null,
|
170
171
|
"difficulty": 3,
|
172
|
+
"slug": "series",
|
171
173
|
"topics": [
|
172
|
-
"
|
173
|
-
"
|
174
|
-
"
|
175
|
-
]
|
174
|
+
"arrays",
|
175
|
+
"refactoring",
|
176
|
+
"strings"
|
177
|
+
],
|
178
|
+
"unlocked_by": null,
|
179
|
+
"uuid": "2c5fb577-a9ce-4c4c-8fc8-fffb38d020d6"
|
176
180
|
},
|
177
181
|
{
|
178
|
-
"uuid": "31c77516-6702-417e-9c6e-19c7e965d513",
|
179
|
-
"slug": "binary-search",
|
180
182
|
"core": true,
|
181
|
-
"unlocked_by": null,
|
182
183
|
"difficulty": 5,
|
184
|
+
"slug": "binary-search",
|
183
185
|
"topics": [
|
184
|
-
"
|
185
|
-
"
|
186
|
-
"
|
187
|
-
"
|
188
|
-
]
|
186
|
+
"algorithms",
|
187
|
+
"arrays",
|
188
|
+
"searching",
|
189
|
+
"sorting"
|
190
|
+
],
|
191
|
+
"unlocked_by": null,
|
192
|
+
"uuid": "31c77516-6702-417e-9c6e-19c7e965d513"
|
189
193
|
},
|
190
194
|
{
|
191
|
-
"uuid": "75b6e2e8-1e20-4f53-b7c5-e32f9f7eea58",
|
192
|
-
"slug": "twelve-days",
|
193
195
|
"core": true,
|
194
|
-
"unlocked_by": null,
|
195
196
|
"difficulty": 4,
|
197
|
+
"slug": "twelve-days",
|
196
198
|
"topics": [
|
197
|
-
"
|
198
|
-
"
|
199
|
-
"
|
200
|
-
"
|
201
|
-
"
|
202
|
-
]
|
199
|
+
"algorithms",
|
200
|
+
"pattern-recognition",
|
201
|
+
"sequences",
|
202
|
+
"strings",
|
203
|
+
"text-formatting"
|
204
|
+
],
|
205
|
+
"unlocked_by": null,
|
206
|
+
"uuid": "75b6e2e8-1e20-4f53-b7c5-e32f9f7eea58"
|
203
207
|
},
|
204
208
|
{
|
205
|
-
"uuid": "62aa3d20-65d8-440f-9d08-48bbc823f4fe",
|
206
|
-
"slug": "matrix",
|
207
209
|
"core": true,
|
208
|
-
"unlocked_by": null,
|
209
210
|
"difficulty": 4,
|
211
|
+
"slug": "matrix",
|
210
212
|
"topics": [
|
211
|
-
"
|
212
|
-
"
|
213
|
-
"
|
214
|
-
"
|
215
|
-
"
|
216
|
-
]
|
213
|
+
"arrays",
|
214
|
+
"exception-handling",
|
215
|
+
"matrices",
|
216
|
+
"strings",
|
217
|
+
"type-conversion"
|
218
|
+
],
|
219
|
+
"unlocked_by": null,
|
220
|
+
"uuid": "62aa3d20-65d8-440f-9d08-48bbc823f4fe"
|
217
221
|
},
|
218
222
|
{
|
219
|
-
"uuid": "92e2a192-5ee9-422a-8699-c231a7136b10",
|
220
|
-
"slug": "pascals-triangle",
|
221
223
|
"core": false,
|
222
|
-
"unlocked_by": "series",
|
223
224
|
"difficulty": 4,
|
225
|
+
"slug": "pascals-triangle",
|
224
226
|
"topics": [
|
225
|
-
"
|
226
|
-
"
|
227
|
-
]
|
227
|
+
"arrays",
|
228
|
+
"mathematics"
|
229
|
+
],
|
230
|
+
"unlocked_by": "series",
|
231
|
+
"uuid": "92e2a192-5ee9-422a-8699-c231a7136b10"
|
228
232
|
},
|
229
233
|
{
|
230
|
-
"uuid": "95f49a88-6f01-4905-a8b1-a3fcec1f535a",
|
231
|
-
"slug": "queen-attack",
|
232
234
|
"core": true,
|
233
|
-
"unlocked_by": null,
|
234
235
|
"difficulty": 5,
|
236
|
+
"slug": "queen-attack",
|
235
237
|
"topics": [
|
236
|
-
"
|
237
|
-
"
|
238
|
-
"
|
239
|
-
"
|
240
|
-
]
|
238
|
+
"booleans",
|
239
|
+
"errors",
|
240
|
+
"games",
|
241
|
+
"logic"
|
242
|
+
],
|
243
|
+
"unlocked_by": null,
|
244
|
+
"uuid": "95f49a88-6f01-4905-a8b1-a3fcec1f535a"
|
241
245
|
},
|
242
246
|
{
|
243
|
-
"uuid": "fee57b09-2b67-4483-a2e5-3dfec0568b15",
|
244
|
-
"slug": "leap",
|
245
247
|
"core": false,
|
246
|
-
"unlocked_by": "hamming",
|
247
248
|
"difficulty": 1,
|
249
|
+
"slug": "leap",
|
248
250
|
"topics": [
|
249
|
-
"
|
250
|
-
"
|
251
|
-
"
|
252
|
-
"
|
253
|
-
]
|
251
|
+
"booleans",
|
252
|
+
"control-flow-(conditionals)",
|
253
|
+
"integers",
|
254
|
+
"logic"
|
255
|
+
],
|
256
|
+
"unlocked_by": "hamming",
|
257
|
+
"uuid": "fee57b09-2b67-4483-a2e5-3dfec0568b15"
|
254
258
|
},
|
255
259
|
{
|
256
|
-
"uuid": "ea390e58-6ac5-4219-89bb-648852712a6a",
|
257
|
-
"slug": "gigasecond",
|
258
260
|
"core": false,
|
259
|
-
"unlocked_by": "hamming",
|
260
261
|
"difficulty": 1,
|
262
|
+
"slug": "gigasecond",
|
261
263
|
"topics": [
|
262
|
-
"
|
263
|
-
]
|
264
|
+
"time"
|
265
|
+
],
|
266
|
+
"unlocked_by": "hamming",
|
267
|
+
"uuid": "ea390e58-6ac5-4219-89bb-648852712a6a"
|
264
268
|
},
|
265
269
|
{
|
266
|
-
"uuid": "fb03948c-11e8-440d-9a5d-979396451270",
|
267
|
-
"slug": "accumulate",
|
268
270
|
"core": false,
|
269
|
-
"unlocked_by": "raindrops",
|
270
271
|
"difficulty": 1,
|
272
|
+
"slug": "accumulate",
|
271
273
|
"topics": [
|
272
|
-
"
|
273
|
-
]
|
274
|
+
"lists"
|
275
|
+
],
|
276
|
+
"unlocked_by": "raindrops",
|
277
|
+
"uuid": "fb03948c-11e8-440d-9a5d-979396451270"
|
274
278
|
},
|
275
279
|
{
|
276
|
-
"uuid": "d14c6283-e57c-472c-8181-87f82d9088dd",
|
277
|
-
"slug": "pangram",
|
278
280
|
"core": false,
|
279
|
-
"unlocked_by": "raindrops",
|
280
281
|
"difficulty": 2,
|
282
|
+
"slug": "pangram",
|
281
283
|
"topics": [
|
282
|
-
"
|
283
|
-
"
|
284
|
-
]
|
284
|
+
"control-flow-(loops)",
|
285
|
+
"strings"
|
286
|
+
],
|
287
|
+
"unlocked_by": "raindrops",
|
288
|
+
"uuid": "d14c6283-e57c-472c-8181-87f82d9088dd"
|
285
289
|
},
|
286
290
|
{
|
287
|
-
"uuid": "efdf07a1-e329-4d0f-90a1-374b9b8af748",
|
288
|
-
"slug": "bob",
|
289
291
|
"core": false,
|
290
|
-
"unlocked_by": "raindrops",
|
291
292
|
"difficulty": 2,
|
293
|
+
"slug": "bob",
|
292
294
|
"topics": [
|
293
|
-
"
|
294
|
-
"
|
295
|
-
]
|
295
|
+
"control-flow-(conditionals)",
|
296
|
+
"strings"
|
297
|
+
],
|
298
|
+
"unlocked_by": "raindrops",
|
299
|
+
"uuid": "efdf07a1-e329-4d0f-90a1-374b9b8af748"
|
296
300
|
},
|
297
301
|
{
|
298
|
-
"uuid": "cd05b63b-df20-4c8d-8743-53033acf7696",
|
299
|
-
"slug": "error-handling",
|
300
302
|
"core": false,
|
301
|
-
"unlocked_by": "queen-attack",
|
302
303
|
"difficulty": 5,
|
304
|
+
"slug": "error-handling",
|
303
305
|
"topics": [
|
304
|
-
"
|
305
|
-
]
|
306
|
+
"exception-handling"
|
307
|
+
],
|
308
|
+
"unlocked_by": "queen-attack",
|
309
|
+
"uuid": "cd05b63b-df20-4c8d-8743-53033acf7696"
|
306
310
|
},
|
307
311
|
{
|
308
|
-
"uuid": "9a1870e0-dce7-496e-9521-2f2b606ac6c5",
|
309
|
-
"slug": "secret-handshake",
|
310
312
|
"core": false,
|
311
|
-
"unlocked_by": "grains",
|
312
313
|
"difficulty": 5,
|
314
|
+
"slug": "secret-handshake",
|
313
315
|
"topics": [
|
314
|
-
"
|
315
|
-
"
|
316
|
-
"
|
317
|
-
]
|
316
|
+
"arrays",
|
317
|
+
"bitwise-operations",
|
318
|
+
"integers"
|
319
|
+
],
|
320
|
+
"unlocked_by": "grains",
|
321
|
+
"uuid": "9a1870e0-dce7-496e-9521-2f2b606ac6c5"
|
318
322
|
},
|
319
323
|
{
|
320
|
-
"uuid": "11008fb0-4ef9-4aff-befb-c56f4084f96e",
|
321
|
-
"slug": "house",
|
322
324
|
"core": false,
|
323
|
-
"unlocked_by": "twelve-days",
|
324
325
|
"difficulty": 4,
|
326
|
+
"slug": "house",
|
325
327
|
"topics": [
|
326
|
-
"
|
327
|
-
"
|
328
|
-
"
|
329
|
-
]
|
328
|
+
"recursion",
|
329
|
+
"strings",
|
330
|
+
"text-formatting"
|
331
|
+
],
|
332
|
+
"unlocked_by": "twelve-days",
|
333
|
+
"uuid": "11008fb0-4ef9-4aff-befb-c56f4084f96e"
|
330
334
|
},
|
331
335
|
{
|
332
|
-
"uuid": "f0c25fde-960e-4161-a642-4414925b4d0a",
|
333
|
-
"slug": "sum-of-multiples",
|
334
336
|
"core": false,
|
335
|
-
"unlocked_by": "difference-of-squares",
|
336
337
|
"difficulty": 5,
|
338
|
+
"slug": "sum-of-multiples",
|
337
339
|
"topics": [
|
338
|
-
"
|
339
|
-
"
|
340
|
-
]
|
340
|
+
"control-flow-(loops)",
|
341
|
+
"mathematics"
|
342
|
+
],
|
343
|
+
"unlocked_by": "difference-of-squares",
|
344
|
+
"uuid": "f0c25fde-960e-4161-a642-4414925b4d0a"
|
341
345
|
},
|
342
346
|
{
|
343
|
-
"uuid": "6c919eab-7c63-444a-a485-db74d51c3430",
|
344
|
-
"slug": "pythagorean-triplet",
|
345
347
|
"core": false,
|
346
|
-
"unlocked_by": "difference-of-squares",
|
347
348
|
"difficulty": 5,
|
349
|
+
"slug": "pythagorean-triplet",
|
348
350
|
"topics": [
|
349
|
-
"
|
350
|
-
"
|
351
|
-
]
|
351
|
+
"algorithms",
|
352
|
+
"mathematics"
|
353
|
+
],
|
354
|
+
"unlocked_by": "difference-of-squares",
|
355
|
+
"uuid": "6c919eab-7c63-444a-a485-db74d51c3430"
|
352
356
|
},
|
353
357
|
{
|
354
|
-
"uuid": "c2064df8-cce5-4f03-9d85-0818b4e34112",
|
355
|
-
"slug": "isogram",
|
356
358
|
"core": false,
|
357
|
-
"unlocked_by": "pangram",
|
358
359
|
"difficulty": 3,
|
360
|
+
"slug": "isogram",
|
359
361
|
"topics": [
|
360
|
-
"
|
361
|
-
"
|
362
|
-
]
|
362
|
+
"sequences",
|
363
|
+
"strings"
|
364
|
+
],
|
365
|
+
"unlocked_by": "pangram",
|
366
|
+
"uuid": "c2064df8-cce5-4f03-9d85-0818b4e34112"
|
363
367
|
},
|
364
368
|
{
|
365
|
-
"uuid": "7cb6c78e-44e9-499b-a745-3ecb73bea3ab",
|
366
|
-
"slug": "bank-account",
|
367
369
|
"core": false,
|
368
|
-
"unlocked_by": "parallel-letter-frequency",
|
369
370
|
"difficulty": 4,
|
371
|
+
"slug": "bank-account",
|
370
372
|
"topics": [
|
371
|
-
"
|
372
|
-
"
|
373
|
-
]
|
373
|
+
"concurrency",
|
374
|
+
"integers"
|
375
|
+
],
|
376
|
+
"unlocked_by": "parallel-letter-frequency",
|
377
|
+
"uuid": "7cb6c78e-44e9-499b-a745-3ecb73bea3ab"
|
374
378
|
},
|
375
379
|
{
|
376
|
-
"uuid": "a1c065d9-6971-4286-8413-c944e2dddefa",
|
377
|
-
"slug": "crypto-square",
|
378
380
|
"core": false,
|
379
|
-
"unlocked_by": "luhn",
|
380
381
|
"difficulty": 3,
|
382
|
+
"slug": "crypto-square",
|
381
383
|
"topics": [
|
382
|
-
"
|
383
|
-
"
|
384
|
-
"
|
385
|
-
"
|
386
|
-
"
|
387
|
-
]
|
384
|
+
"cryptography",
|
385
|
+
"filtering",
|
386
|
+
"strings",
|
387
|
+
"text-formatting",
|
388
|
+
"transforming"
|
389
|
+
],
|
390
|
+
"unlocked_by": "luhn",
|
391
|
+
"uuid": "a1c065d9-6971-4286-8413-c944e2dddefa"
|
388
392
|
},
|
389
393
|
{
|
390
|
-
"uuid": "8b29da0e-8ead-4e72-a12a-d448c8434767",
|
391
|
-
"slug": "luhn",
|
392
394
|
"core": false,
|
393
|
-
"unlocked_by": "acronym",
|
394
395
|
"difficulty": 2,
|
396
|
+
"slug": "luhn",
|
395
397
|
"topics": [
|
396
|
-
"
|
397
|
-
"
|
398
|
-
"
|
399
|
-
]
|
398
|
+
"algorithms",
|
399
|
+
"integers",
|
400
|
+
"strings"
|
401
|
+
],
|
402
|
+
"unlocked_by": "acronym",
|
403
|
+
"uuid": "8b29da0e-8ead-4e72-a12a-d448c8434767"
|
400
404
|
},
|
401
405
|
{
|
402
|
-
"uuid": "12a16ab5-35fc-4fb2-a018-504953f3ad80",
|
403
|
-
"slug": "food-chain",
|
404
406
|
"core": false,
|
405
|
-
"unlocked_by": "twelve-days",
|
406
407
|
"difficulty": 4,
|
408
|
+
"slug": "food-chain",
|
407
409
|
"topics": [
|
408
|
-
"
|
409
|
-
"
|
410
|
-
"
|
411
|
-
"
|
412
|
-
"
|
413
|
-
]
|
410
|
+
"control-flow-(conditionals)",
|
411
|
+
"control-flow-(loops)",
|
412
|
+
"recursion",
|
413
|
+
"strings",
|
414
|
+
"text-formatting"
|
415
|
+
],
|
416
|
+
"unlocked_by": "twelve-days",
|
417
|
+
"uuid": "12a16ab5-35fc-4fb2-a018-504953f3ad80"
|
414
418
|
},
|
415
419
|
{
|
416
|
-
"uuid": "8ec72d61-d830-48cf-819d-cd4faf0cf67d",
|
417
|
-
"slug": "largest-series-product",
|
418
420
|
"core": false,
|
419
|
-
"unlocked_by": "difference-of-squares",
|
420
421
|
"difficulty": 3,
|
422
|
+
"slug": "largest-series-product",
|
421
423
|
"topics": [
|
422
|
-
"
|
423
|
-
"
|
424
|
-
"
|
425
|
-
]
|
424
|
+
"algorithms",
|
425
|
+
"integers",
|
426
|
+
"sequences"
|
427
|
+
],
|
428
|
+
"unlocked_by": "difference-of-squares",
|
429
|
+
"uuid": "8ec72d61-d830-48cf-819d-cd4faf0cf67d"
|
426
430
|
},
|
427
431
|
{
|
428
|
-
"uuid": "c3469a26-b133-43b4-ab7d-32ea04fa5ce4",
|
429
|
-
"slug": "sieve",
|
430
432
|
"core": false,
|
431
|
-
"unlocked_by": "strain",
|
432
433
|
"difficulty": 3,
|
434
|
+
"slug": "sieve",
|
433
435
|
"topics": [
|
434
|
-
"
|
435
|
-
"
|
436
|
-
"
|
437
|
-
"
|
438
|
-
"
|
439
|
-
]
|
436
|
+
"algorithms",
|
437
|
+
"control-flow-(loops)",
|
438
|
+
"integers",
|
439
|
+
"mathematics",
|
440
|
+
"sorting"
|
441
|
+
],
|
442
|
+
"unlocked_by": "strain",
|
443
|
+
"uuid": "c3469a26-b133-43b4-ab7d-32ea04fa5ce4"
|
440
444
|
},
|
441
445
|
{
|
442
|
-
"uuid": "10f091b1-deda-4fec-8e3c-9dabb080d473",
|
443
|
-
"slug": "palindrome-products",
|
444
446
|
"core": false,
|
445
|
-
"unlocked_by": "perfect-numbers",
|
446
447
|
"difficulty": 6,
|
448
|
+
"slug": "palindrome-products",
|
447
449
|
"topics": [
|
448
|
-
"
|
449
|
-
"
|
450
|
-
]
|
450
|
+
"algorithms",
|
451
|
+
"mathematics"
|
452
|
+
],
|
453
|
+
"unlocked_by": "perfect-numbers",
|
454
|
+
"uuid": "10f091b1-deda-4fec-8e3c-9dabb080d473"
|
451
455
|
},
|
452
456
|
{
|
453
|
-
"uuid": "0b9e07de-c8e4-4d28-b589-897a7ef8062a",
|
454
|
-
"slug": "protein-translation",
|
455
457
|
"core": false,
|
456
|
-
"unlocked_by": "rna-transcription",
|
457
458
|
"difficulty": 3,
|
459
|
+
"slug": "protein-translation",
|
458
460
|
"topics": [
|
459
|
-
"
|
460
|
-
"
|
461
|
-
"
|
462
|
-
]
|
461
|
+
"filtering",
|
462
|
+
"maps",
|
463
|
+
"sequences"
|
464
|
+
],
|
465
|
+
"unlocked_by": "rna-transcription",
|
466
|
+
"uuid": "0b9e07de-c8e4-4d28-b589-897a7ef8062a"
|
463
467
|
},
|
464
468
|
{
|
465
|
-
"uuid": "362f93ab-51e8-4d6a-bd2f-b46432843eb9",
|
466
|
-
"slug": "perfect-numbers",
|
467
469
|
"core": false,
|
468
|
-
"unlocked_by": "clock",
|
469
470
|
"difficulty": 4,
|
471
|
+
"slug": "perfect-numbers",
|
470
472
|
"topics": [
|
471
|
-
"
|
472
|
-
"
|
473
|
-
"
|
474
|
-
"
|
475
|
-
]
|
473
|
+
"algorithms",
|
474
|
+
"filtering",
|
475
|
+
"integers",
|
476
|
+
"mathematics"
|
477
|
+
],
|
478
|
+
"unlocked_by": "clock",
|
479
|
+
"uuid": "362f93ab-51e8-4d6a-bd2f-b46432843eb9"
|
476
480
|
},
|
477
481
|
{
|
478
|
-
"uuid": "6c2499f7-d42c-4d0f-9680-f5f7650023ff",
|
479
|
-
"slug": "bracket-push",
|
480
482
|
"core": false,
|
481
|
-
"unlocked_by": "poker",
|
482
483
|
"difficulty": 7,
|
484
|
+
"slug": "bracket-push",
|
483
485
|
"topics": [
|
484
|
-
"
|
485
|
-
"
|
486
|
-
]
|
486
|
+
"parsing",
|
487
|
+
"strings"
|
488
|
+
],
|
489
|
+
"unlocked_by": "poker",
|
490
|
+
"uuid": "6c2499f7-d42c-4d0f-9680-f5f7650023ff"
|
487
491
|
},
|
488
492
|
{
|
489
|
-
"uuid": "f1db7190-a53d-411d-b538-8dc3f75ddc32",
|
490
|
-
"slug": "anagram",
|
491
493
|
"core": false,
|
492
|
-
"unlocked_by": "scrabble-score",
|
493
494
|
"difficulty": 3,
|
495
|
+
"slug": "anagram",
|
494
496
|
"topics": [
|
495
|
-
"
|
496
|
-
"
|
497
|
-
"
|
498
|
-
]
|
497
|
+
"filtering",
|
498
|
+
"parsing",
|
499
|
+
"strings"
|
500
|
+
],
|
501
|
+
"unlocked_by": "scrabble-score",
|
502
|
+
"uuid": "f1db7190-a53d-411d-b538-8dc3f75ddc32"
|
499
503
|
},
|
500
504
|
{
|
501
|
-
"uuid": "cbfd4cfb-abe7-45f9-80e4-3de3b2639fc8",
|
502
|
-
"slug": "allergies",
|
503
505
|
"core": false,
|
504
|
-
"unlocked_by": "grains",
|
505
506
|
"difficulty": 4,
|
507
|
+
"slug": "allergies",
|
506
508
|
"topics": [
|
507
|
-
"
|
508
|
-
"
|
509
|
-
]
|
509
|
+
"bitwise-operations",
|
510
|
+
"enumeration"
|
511
|
+
],
|
512
|
+
"unlocked_by": "grains",
|
513
|
+
"uuid": "cbfd4cfb-abe7-45f9-80e4-3de3b2639fc8"
|
510
514
|
},
|
511
515
|
{
|
512
|
-
"uuid": "9bef2163-2a24-4d50-9610-e3cac2e7772a",
|
513
|
-
"slug": "rna-transcription",
|
514
516
|
"core": false,
|
515
|
-
"unlocked_by": "scrabble-score",
|
516
517
|
"difficulty": 2,
|
518
|
+
"slug": "rna-transcription",
|
517
519
|
"topics": [
|
518
|
-
|
519
|
-
|
520
|
-
]
|
520
|
+
"maps",
|
521
|
+
"transforming"
|
522
|
+
],
|
523
|
+
"unlocked_by": "scrabble-score",
|
524
|
+
"uuid": "9bef2163-2a24-4d50-9610-e3cac2e7772a"
|
521
525
|
},
|
522
526
|
{
|
523
|
-
"uuid": "eccfd2b3-93cf-41a8-b39b-c29596469e8e",
|
524
|
-
"slug": "roman-numerals",
|
525
527
|
"core": false,
|
526
|
-
"unlocked_by": "acronym",
|
527
528
|
"difficulty": 2,
|
529
|
+
"slug": "roman-numerals",
|
528
530
|
"topics": [
|
529
|
-
"
|
530
|
-
"
|
531
|
-
]
|
531
|
+
"numbers",
|
532
|
+
"transforming"
|
533
|
+
],
|
534
|
+
"unlocked_by": "acronym",
|
535
|
+
"uuid": "eccfd2b3-93cf-41a8-b39b-c29596469e8e"
|
532
536
|
},
|
533
537
|
{
|
534
|
-
"uuid": "5d742499-b130-458a-ba3e-a4c3d75419c3",
|
535
|
-
"slug": "say",
|
536
538
|
"core": false,
|
537
|
-
"unlocked_by": "meetup",
|
538
539
|
"difficulty": 7,
|
540
|
+
"slug": "say",
|
539
541
|
"topics": [
|
540
|
-
"
|
541
|
-
"
|
542
|
-
"
|
543
|
-
"
|
544
|
-
]
|
542
|
+
"numbers",
|
543
|
+
"strings",
|
544
|
+
"text-formatting",
|
545
|
+
"transforming"
|
546
|
+
],
|
547
|
+
"unlocked_by": "meetup",
|
548
|
+
"uuid": "5d742499-b130-458a-ba3e-a4c3d75419c3"
|
545
549
|
},
|
546
550
|
{
|
547
|
-
"uuid": "c13edd0a-cd39-4f25-970c-c1f9e32bac2c",
|
548
|
-
"slug": "circular-buffer",
|
549
551
|
"core": false,
|
550
|
-
"unlocked_by": "grade-school",
|
551
552
|
"difficulty": 5,
|
553
|
+
"slug": "circular-buffer",
|
552
554
|
"topics": [
|
553
|
-
"
|
554
|
-
"
|
555
|
-
]
|
555
|
+
"queues",
|
556
|
+
"structs"
|
557
|
+
],
|
558
|
+
"unlocked_by": "grade-school",
|
559
|
+
"uuid": "c13edd0a-cd39-4f25-970c-c1f9e32bac2c"
|
556
560
|
},
|
557
561
|
{
|
558
|
-
"uuid": "86b8f1e6-e088-403e-984a-abd360f5dcef",
|
559
|
-
"slug": "robot-name",
|
560
562
|
"core": false,
|
561
|
-
"unlocked_by": "scrabble-score",
|
562
563
|
"difficulty": 3,
|
564
|
+
"slug": "robot-name",
|
563
565
|
"topics": [
|
564
|
-
"
|
565
|
-
]
|
566
|
+
"randomness"
|
567
|
+
],
|
568
|
+
"unlocked_by": "scrabble-score",
|
569
|
+
"uuid": "86b8f1e6-e088-403e-984a-abd360f5dcef"
|
566
570
|
},
|
567
571
|
{
|
568
|
-
"uuid": "47b9ad32-e9d9-4cbc-b106-540f3afbfa80",
|
569
|
-
"slug": "diamond",
|
570
572
|
"core": false,
|
571
|
-
"unlocked_by": "series",
|
572
573
|
"difficulty": 4,
|
574
|
+
"slug": "diamond",
|
573
575
|
"topics": [
|
574
|
-
"
|
575
|
-
"
|
576
|
-
"
|
577
|
-
"
|
578
|
-
"
|
579
|
-
]
|
576
|
+
"algorithms",
|
577
|
+
"control-flow-(conditionals)",
|
578
|
+
"control-flow-(loops)",
|
579
|
+
"strings",
|
580
|
+
"text-formatting"
|
581
|
+
],
|
582
|
+
"unlocked_by": "series",
|
583
|
+
"uuid": "47b9ad32-e9d9-4cbc-b106-540f3afbfa80"
|
580
584
|
},
|
581
585
|
{
|
582
|
-
"uuid": "4b168cb9-605b-465d-8f89-3a3b760c1402",
|
583
|
-
"slug": "react",
|
584
586
|
"core": false,
|
585
|
-
"unlocked_by": "queen-attack",
|
586
587
|
"difficulty": 9,
|
588
|
+
"slug": "react",
|
587
589
|
"topics": [
|
588
|
-
"
|
589
|
-
]
|
590
|
+
"reactive-programming"
|
591
|
+
],
|
592
|
+
"unlocked_by": "queen-attack",
|
593
|
+
"uuid": "4b168cb9-605b-465d-8f89-3a3b760c1402"
|
590
594
|
},
|
591
595
|
{
|
592
|
-
"uuid": "ad12bbf9-e0c8-433a-8a6b-847ff2d36acf",
|
593
|
-
"slug": "custom-set",
|
594
596
|
"core": false,
|
595
|
-
"unlocked_by": "strain",
|
596
597
|
"difficulty": 4,
|
598
|
+
"slug": "custom-set",
|
597
599
|
"topics": [
|
598
|
-
"
|
599
|
-
"
|
600
|
-
"
|
601
|
-
]
|
600
|
+
"control-flow-(loops)",
|
601
|
+
"filtering",
|
602
|
+
"sets"
|
603
|
+
],
|
604
|
+
"unlocked_by": "strain",
|
605
|
+
"uuid": "ad12bbf9-e0c8-433a-8a6b-847ff2d36acf"
|
602
606
|
},
|
603
607
|
{
|
604
|
-
"uuid": "84bda80c-b82c-45f6-95d4-5568d23a22dd",
|
605
|
-
"slug": "atbash-cipher",
|
606
608
|
"core": false,
|
607
|
-
"unlocked_by": "luhn",
|
608
609
|
"difficulty": 3,
|
610
|
+
"slug": "atbash-cipher",
|
609
611
|
"topics": [
|
610
|
-
"
|
611
|
-
"
|
612
|
-
"
|
613
|
-
"
|
614
|
-
]
|
612
|
+
"algorithms",
|
613
|
+
"cryptography",
|
614
|
+
"strings",
|
615
|
+
"transforming"
|
616
|
+
],
|
617
|
+
"unlocked_by": "luhn",
|
618
|
+
"uuid": "84bda80c-b82c-45f6-95d4-5568d23a22dd"
|
615
619
|
},
|
616
620
|
{
|
617
|
-
"uuid": "458053ea-43a9-409f-a1a6-a7f31329aca4",
|
618
|
-
"slug": "phone-number",
|
619
621
|
"core": false,
|
620
|
-
"unlocked_by": "etl",
|
621
622
|
"difficulty": 3,
|
623
|
+
"slug": "phone-number",
|
622
624
|
"topics": [
|
623
|
-
"
|
624
|
-
"
|
625
|
-
"
|
626
|
-
"
|
627
|
-
]
|
625
|
+
"control-flow-(conditionals)",
|
626
|
+
"strings",
|
627
|
+
"text-formatting",
|
628
|
+
"transforming"
|
629
|
+
],
|
630
|
+
"unlocked_by": "etl",
|
631
|
+
"uuid": "458053ea-43a9-409f-a1a6-a7f31329aca4"
|
628
632
|
},
|
629
633
|
{
|
630
|
-
"uuid": "4fe8ba14-20ba-4aa3-b134-7aed799a7522",
|
631
|
-
"slug": "pig-latin",
|
632
634
|
"core": false,
|
633
|
-
"unlocked_by": "phone-number",
|
634
635
|
"difficulty": 4,
|
636
|
+
"slug": "pig-latin",
|
635
637
|
"topics": [
|
636
|
-
"
|
637
|
-
"
|
638
|
-
"
|
639
|
-
]
|
638
|
+
"control-flow-(conditionals)",
|
639
|
+
"strings",
|
640
|
+
"transforming"
|
641
|
+
],
|
642
|
+
"unlocked_by": "phone-number",
|
643
|
+
"uuid": "4fe8ba14-20ba-4aa3-b134-7aed799a7522"
|
640
644
|
},
|
641
645
|
{
|
642
|
-
"uuid": "dbf4d64e-c02d-4bdf-8be1-43f9acb5f2ad",
|
643
|
-
"slug": "prime-factors",
|
644
646
|
"core": false,
|
645
|
-
"unlocked_by": "clock",
|
646
647
|
"difficulty": 3,
|
648
|
+
"slug": "prime-factors",
|
647
649
|
"topics": [
|
648
|
-
"
|
649
|
-
"
|
650
|
-
"
|
651
|
-
]
|
650
|
+
"algorithms",
|
651
|
+
"integers",
|
652
|
+
"mathematics"
|
653
|
+
],
|
654
|
+
"unlocked_by": "clock",
|
655
|
+
"uuid": "dbf4d64e-c02d-4bdf-8be1-43f9acb5f2ad"
|
652
656
|
},
|
653
657
|
{
|
654
|
-
"uuid": "7f19ebbd-b072-45e5-ad67-2fff8ad1c9e2",
|
655
|
-
"slug": "transpose",
|
656
658
|
"core": false,
|
657
|
-
"unlocked_by": "roman-numerals",
|
658
659
|
"difficulty": 5,
|
660
|
+
"slug": "transpose",
|
659
661
|
"topics": [
|
660
|
-
"
|
661
|
-
"
|
662
|
-
"
|
663
|
-
]
|
662
|
+
"control-flow-(loops)",
|
663
|
+
"strings",
|
664
|
+
"transforming"
|
665
|
+
],
|
666
|
+
"unlocked_by": "roman-numerals",
|
667
|
+
"uuid": "7f19ebbd-b072-45e5-ad67-2fff8ad1c9e2"
|
664
668
|
},
|
665
669
|
{
|
666
|
-
"uuid": "128e0b12-0ad2-431a-971c-ad4ab098b42d",
|
667
|
-
"slug": "nth-prime",
|
668
670
|
"core": false,
|
669
|
-
"unlocked_by": "difference-of-squares",
|
670
671
|
"difficulty": 3,
|
672
|
+
"slug": "nth-prime",
|
671
673
|
"topics": [
|
672
|
-
"
|
673
|
-
"
|
674
|
-
"
|
675
|
-
]
|
674
|
+
"algorithms",
|
675
|
+
"integers",
|
676
|
+
"mathematics"
|
677
|
+
],
|
678
|
+
"unlocked_by": "difference-of-squares",
|
679
|
+
"uuid": "128e0b12-0ad2-431a-971c-ad4ab098b42d"
|
676
680
|
},
|
677
681
|
{
|
678
|
-
"uuid": "f3058f8b-7e0e-4adb-9add-1df23607d4ed",
|
679
|
-
"slug": "diffie-hellman",
|
680
682
|
"core": false,
|
681
|
-
"unlocked_by": "luhn",
|
682
683
|
"difficulty": 5,
|
684
|
+
"slug": "diffie-hellman",
|
683
685
|
"topics": [
|
684
|
-
"
|
685
|
-
"
|
686
|
-
"
|
687
|
-
"
|
688
|
-
]
|
686
|
+
"algorithms",
|
687
|
+
"cryptography",
|
688
|
+
"integers",
|
689
|
+
"transforming"
|
690
|
+
],
|
691
|
+
"unlocked_by": "luhn",
|
692
|
+
"uuid": "f3058f8b-7e0e-4adb-9add-1df23607d4ed"
|
689
693
|
},
|
690
694
|
{
|
691
|
-
"uuid": "094ea17e-1759-443a-9117-7c72c6f68b8d",
|
692
|
-
"slug": "beer-song",
|
693
695
|
"core": false,
|
694
|
-
"unlocked_by": "twelve-days",
|
695
696
|
"difficulty": 3,
|
697
|
+
"slug": "beer-song",
|
696
698
|
"topics": [
|
697
|
-
|
698
|
-
|
699
|
-
|
700
|
-
]
|
699
|
+
"control-flow-(loops)",
|
700
|
+
"strings",
|
701
|
+
"text-formatting"
|
702
|
+
],
|
703
|
+
"unlocked_by": "twelve-days",
|
704
|
+
"uuid": "094ea17e-1759-443a-9117-7c72c6f68b8d"
|
701
705
|
},
|
702
706
|
{
|
703
|
-
"uuid": "13e58d89-4dbb-4384-9268-2f8083588d7a",
|
704
|
-
"slug": "ocr-numbers",
|
705
707
|
"core": false,
|
706
|
-
"unlocked_by": "poker",
|
707
708
|
"difficulty": 7,
|
709
|
+
"slug": "ocr-numbers",
|
708
710
|
"topics": [
|
709
|
-
"
|
710
|
-
"
|
711
|
-
]
|
711
|
+
"parsing",
|
712
|
+
"pattern-recognition"
|
713
|
+
],
|
714
|
+
"unlocked_by": "poker",
|
715
|
+
"uuid": "13e58d89-4dbb-4384-9268-2f8083588d7a"
|
712
716
|
},
|
713
717
|
{
|
714
|
-
"uuid": "1eb7d7b2-6367-4038-bb86-7dc6c682b6a3",
|
715
|
-
"slug": "wordy",
|
716
718
|
"core": false,
|
717
|
-
"unlocked_by": "triangle",
|
718
719
|
"difficulty": 3,
|
720
|
+
"slug": "wordy",
|
719
721
|
"topics": [
|
720
|
-
"
|
721
|
-
"
|
722
|
-
"
|
723
|
-
"
|
724
|
-
"
|
725
|
-
]
|
722
|
+
"control-flow-(conditionals)",
|
723
|
+
"integers",
|
724
|
+
"parsing",
|
725
|
+
"strings",
|
726
|
+
"type-conversion"
|
727
|
+
],
|
728
|
+
"unlocked_by": "triangle",
|
729
|
+
"uuid": "1eb7d7b2-6367-4038-bb86-7dc6c682b6a3"
|
726
730
|
},
|
727
731
|
{
|
728
|
-
"uuid": "5911d90f-ba2f-482f-8c92-c01c112d6fdd",
|
729
|
-
"slug": "nucleotide-count",
|
730
732
|
"core": false,
|
731
|
-
"unlocked_by": "scrabble-score",
|
732
733
|
"difficulty": 2,
|
734
|
+
"slug": "nucleotide-count",
|
733
735
|
"topics": [
|
734
|
-
"
|
735
|
-
"
|
736
|
-
"
|
737
|
-
]
|
736
|
+
"maps",
|
737
|
+
"parsing",
|
738
|
+
"strings"
|
739
|
+
],
|
740
|
+
"unlocked_by": "scrabble-score",
|
741
|
+
"uuid": "5911d90f-ba2f-482f-8c92-c01c112d6fdd"
|
738
742
|
},
|
739
743
|
{
|
740
|
-
"uuid": "aa598f3e-9d2b-4f9f-8c14-46e0ac27d5be",
|
741
|
-
"slug": "grade-school",
|
742
744
|
"core": false,
|
743
|
-
"unlocked_by": "word-count",
|
744
745
|
"difficulty": 5,
|
746
|
+
"slug": "grade-school",
|
745
747
|
"topics": [
|
746
|
-
"
|
747
|
-
"
|
748
|
-
"
|
749
|
-
]
|
748
|
+
"lists",
|
749
|
+
"sorting",
|
750
|
+
"structs"
|
751
|
+
],
|
752
|
+
"unlocked_by": "word-count",
|
753
|
+
"uuid": "aa598f3e-9d2b-4f9f-8c14-46e0ac27d5be"
|
750
754
|
},
|
751
755
|
{
|
752
|
-
"uuid": "c78102b0-aaa3-4edb-a315-4fcdc26ccae8",
|
753
|
-
"slug": "saddle-points",
|
754
756
|
"core": false,
|
755
|
-
"unlocked_by": "matrix",
|
756
757
|
"difficulty": 5,
|
758
|
+
"slug": "saddle-points",
|
757
759
|
"topics": [
|
758
|
-
"
|
759
|
-
"
|
760
|
-
"
|
761
|
-
"
|
762
|
-
]
|
760
|
+
"arrays",
|
761
|
+
"integers",
|
762
|
+
"matrices",
|
763
|
+
"searching"
|
764
|
+
],
|
765
|
+
"unlocked_by": "matrix",
|
766
|
+
"uuid": "c78102b0-aaa3-4edb-a315-4fcdc26ccae8"
|
763
767
|
},
|
764
768
|
{
|
765
|
-
"uuid": "fcf735fe-a659-40ae-858e-6d1e834a4faf",
|
766
|
-
"slug": "meetup",
|
767
769
|
"core": false,
|
768
|
-
"unlocked_by": "roman-numerals",
|
769
770
|
"difficulty": 3,
|
771
|
+
"slug": "meetup",
|
770
772
|
"topics": [
|
771
|
-
"
|
772
|
-
"
|
773
|
-
"
|
774
|
-
"
|
775
|
-
]
|
773
|
+
"dates",
|
774
|
+
"time",
|
775
|
+
"transforming",
|
776
|
+
"type-conversion"
|
777
|
+
],
|
778
|
+
"unlocked_by": "roman-numerals",
|
779
|
+
"uuid": "fcf735fe-a659-40ae-858e-6d1e834a4faf"
|
776
780
|
},
|
777
781
|
{
|
778
|
-
"uuid": "ac680609-4e52-468d-bf17-afbf7b2fa74b",
|
779
|
-
"slug": "binary-search-tree",
|
780
782
|
"core": false,
|
781
|
-
"unlocked_by": "binary-search",
|
782
783
|
"difficulty": 5,
|
784
|
+
"slug": "binary-search-tree",
|
783
785
|
"topics": [
|
784
|
-
"
|
785
|
-
"
|
786
|
-
"
|
787
|
-
"
|
788
|
-
"
|
789
|
-
"
|
790
|
-
]
|
786
|
+
"algorithms",
|
787
|
+
"recursion",
|
788
|
+
"searching",
|
789
|
+
"sorting",
|
790
|
+
"structs",
|
791
|
+
"trees"
|
792
|
+
],
|
793
|
+
"unlocked_by": "binary-search",
|
794
|
+
"uuid": "ac680609-4e52-468d-bf17-afbf7b2fa74b"
|
791
795
|
},
|
792
796
|
{
|
793
|
-
"uuid": "d0a2afab-e30d-4617-b646-413a44ecf2ed",
|
794
|
-
"slug": "tree-building",
|
795
797
|
"core": false,
|
796
|
-
"unlocked_by": "series",
|
797
798
|
"difficulty": 3,
|
799
|
+
"slug": "tree-building",
|
798
800
|
"topics": [
|
799
|
-
"
|
800
|
-
"
|
801
|
-
"
|
802
|
-
"
|
803
|
-
]
|
801
|
+
"records",
|
802
|
+
"refactoring",
|
803
|
+
"sorting",
|
804
|
+
"trees"
|
805
|
+
],
|
806
|
+
"unlocked_by": "series",
|
807
|
+
"uuid": "d0a2afab-e30d-4617-b646-413a44ecf2ed"
|
804
808
|
},
|
805
809
|
{
|
806
|
-
"uuid": "4282b1f6-d1a2-41b4-9a7f-a9a145fb283b",
|
807
|
-
"slug": "kindergarten-garden",
|
808
810
|
"core": false,
|
809
|
-
"unlocked_by": "clock",
|
810
811
|
"difficulty": 3,
|
812
|
+
"slug": "kindergarten-garden",
|
811
813
|
"topics": [
|
812
|
-
"
|
813
|
-
"
|
814
|
-
"
|
815
|
-
"
|
816
|
-
"
|
817
|
-
]
|
814
|
+
"parsing",
|
815
|
+
"records",
|
816
|
+
"searching",
|
817
|
+
"strings",
|
818
|
+
"structs"
|
819
|
+
],
|
820
|
+
"unlocked_by": "clock",
|
821
|
+
"uuid": "4282b1f6-d1a2-41b4-9a7f-a9a145fb283b"
|
818
822
|
},
|
819
823
|
{
|
820
|
-
"uuid": "7b9201fa-92d2-43fd-8b35-4c552336570b",
|
821
|
-
"slug": "simple-cipher",
|
822
824
|
"core": false,
|
823
|
-
"unlocked_by": "luhn",
|
824
825
|
"difficulty": 3,
|
826
|
+
"slug": "simple-cipher",
|
825
827
|
"topics": [
|
826
|
-
"
|
827
|
-
"
|
828
|
-
"
|
829
|
-
"
|
830
|
-
"
|
831
|
-
]
|
828
|
+
"algorithms",
|
829
|
+
"cryptography",
|
830
|
+
"interfaces",
|
831
|
+
"strings",
|
832
|
+
"transforming"
|
833
|
+
],
|
834
|
+
"unlocked_by": "luhn",
|
835
|
+
"uuid": "7b9201fa-92d2-43fd-8b35-4c552336570b"
|
832
836
|
},
|
833
837
|
{
|
834
|
-
"uuid": "5dbec590-7a50-4398-987b-7252734216a2",
|
835
|
-
"slug": "paasio",
|
836
838
|
"core": false,
|
837
|
-
"unlocked_by": "parallel-letter-frequency",
|
838
839
|
"difficulty": 5,
|
840
|
+
"slug": "paasio",
|
839
841
|
"topics": [
|
840
|
-
"
|
841
|
-
"
|
842
|
-
"
|
843
|
-
]
|
842
|
+
"concurrency",
|
843
|
+
"interfaces",
|
844
|
+
"networking"
|
845
|
+
],
|
846
|
+
"unlocked_by": "parallel-letter-frequency",
|
847
|
+
"uuid": "5dbec590-7a50-4398-987b-7252734216a2"
|
844
848
|
},
|
845
849
|
{
|
846
|
-
"uuid": "cdbadf95-66ff-455f-bea3-eff5024afcb7",
|
847
|
-
"slug": "pov",
|
848
850
|
"core": false,
|
849
|
-
"unlocked_by": "tree-building",
|
850
851
|
"difficulty": 7,
|
852
|
+
"slug": "pov",
|
851
853
|
"topics": [
|
852
|
-
"
|
853
|
-
"
|
854
|
-
"
|
855
|
-
"
|
856
|
-
"
|
857
|
-
]
|
854
|
+
"graphs",
|
855
|
+
"recursion",
|
856
|
+
"structs",
|
857
|
+
"transforming",
|
858
|
+
"trees"
|
859
|
+
],
|
860
|
+
"unlocked_by": "tree-building",
|
861
|
+
"uuid": "cdbadf95-66ff-455f-bea3-eff5024afcb7"
|
858
862
|
},
|
859
863
|
{
|
860
|
-
"uuid": "3bf049f8-7283-4370-aa0c-e10e99d9ef80",
|
861
|
-
"slug": "minesweeper",
|
862
864
|
"core": false,
|
863
|
-
"unlocked_by": "sieve",
|
864
865
|
"difficulty": 5,
|
866
|
+
"slug": "minesweeper",
|
865
867
|
"topics": [
|
866
|
-
"
|
867
|
-
"
|
868
|
-
"
|
869
|
-
"
|
870
|
-
"
|
871
|
-
]
|
868
|
+
"arrays",
|
869
|
+
"control-flow-(loops)",
|
870
|
+
"games",
|
871
|
+
"matrices",
|
872
|
+
"transforming"
|
873
|
+
],
|
874
|
+
"unlocked_by": "sieve",
|
875
|
+
"uuid": "3bf049f8-7283-4370-aa0c-e10e99d9ef80"
|
872
876
|
},
|
873
877
|
{
|
874
|
-
"uuid": "fc0e4034-0744-43f8-9969-7789cff0607f",
|
875
|
-
"slug": "robot-simulator",
|
876
878
|
"core": false,
|
877
|
-
"unlocked_by": "queen-attack",
|
878
879
|
"difficulty": 6,
|
880
|
+
"slug": "robot-simulator",
|
879
881
|
"topics": [
|
880
|
-
"
|
881
|
-
"
|
882
|
-
"
|
883
|
-
"
|
884
|
-
"
|
885
|
-
]
|
882
|
+
"concurrency",
|
883
|
+
"control-flow-(loops)",
|
884
|
+
"sequences",
|
885
|
+
"strings",
|
886
|
+
"structs"
|
887
|
+
],
|
888
|
+
"unlocked_by": "queen-attack",
|
889
|
+
"uuid": "fc0e4034-0744-43f8-9969-7789cff0607f"
|
886
890
|
},
|
887
891
|
{
|
888
|
-
"uuid": "572d03ec-d763-400e-ba4f-5a6a92d5af98",
|
889
|
-
"slug": "tournament",
|
890
892
|
"core": false,
|
891
|
-
"unlocked_by": "kindergarten-garden",
|
892
893
|
"difficulty": 3,
|
894
|
+
"slug": "tournament",
|
893
895
|
"topics": [
|
894
|
-
"
|
895
|
-
"
|
896
|
-
"
|
897
|
-
"
|
898
|
-
"
|
899
|
-
"
|
900
|
-
"
|
901
|
-
]
|
896
|
+
"integers",
|
897
|
+
"parsing",
|
898
|
+
"records",
|
899
|
+
"sorting",
|
900
|
+
"strings",
|
901
|
+
"text-formatting",
|
902
|
+
"transforming"
|
903
|
+
],
|
904
|
+
"unlocked_by": "kindergarten-garden",
|
905
|
+
"uuid": "572d03ec-d763-400e-ba4f-5a6a92d5af98"
|
902
906
|
},
|
903
907
|
{
|
904
|
-
"uuid": "7fdf352b-e5a3-452e-91a2-03587be48ad0",
|
905
|
-
"slug": "word-search",
|
906
908
|
"core": false,
|
907
|
-
"unlocked_by": "matrix",
|
908
909
|
"difficulty": 4,
|
910
|
+
"slug": "word-search",
|
909
911
|
"topics": [
|
910
|
-
"
|
911
|
-
"
|
912
|
-
"
|
913
|
-
]
|
912
|
+
"matrices",
|
913
|
+
"searching",
|
914
|
+
"strings"
|
915
|
+
],
|
916
|
+
"unlocked_by": "matrix",
|
917
|
+
"uuid": "7fdf352b-e5a3-452e-91a2-03587be48ad0"
|
914
918
|
},
|
915
919
|
{
|
916
|
-
"uuid": "932a7ed0-c331-49b1-917b-a197198f642a",
|
917
|
-
"slug": "all-your-base",
|
918
920
|
"core": false,
|
919
|
-
"unlocked_by": "wordy",
|
920
921
|
"difficulty": 3,
|
922
|
+
"slug": "all-your-base",
|
921
923
|
"topics": [
|
922
|
-
"
|
923
|
-
"
|
924
|
-
"
|
925
|
-
]
|
924
|
+
"integers",
|
925
|
+
"mathematics",
|
926
|
+
"transforming"
|
927
|
+
],
|
928
|
+
"unlocked_by": "wordy",
|
929
|
+
"uuid": "932a7ed0-c331-49b1-917b-a197198f642a"
|
926
930
|
},
|
927
931
|
{
|
928
|
-
"uuid": "395116bc-5be9-4140-a2ef-c7e8689149f2",
|
929
|
-
"slug": "connect",
|
930
932
|
"core": false,
|
931
|
-
"unlocked_by": "bowling",
|
932
933
|
"difficulty": 9,
|
934
|
+
"slug": "connect",
|
933
935
|
"topics": [
|
934
|
-
"
|
935
|
-
"
|
936
|
-
"
|
937
|
-
"
|
938
|
-
"
|
939
|
-
]
|
936
|
+
"arrays",
|
937
|
+
"control-flow-(loops)",
|
938
|
+
"games",
|
939
|
+
"graphs",
|
940
|
+
"searching"
|
941
|
+
],
|
942
|
+
"unlocked_by": "bowling",
|
943
|
+
"uuid": "395116bc-5be9-4140-a2ef-c7e8689149f2"
|
940
944
|
},
|
941
945
|
{
|
942
|
-
"uuid": "7aa53a27-4ff3-4891-809f-2af728eb55a0",
|
943
|
-
"slug": "ledger",
|
944
946
|
"core": false,
|
945
|
-
"unlocked_by": "series",
|
946
947
|
"difficulty": 4,
|
948
|
+
"slug": "ledger",
|
947
949
|
"topics": [
|
948
|
-
"
|
949
|
-
"
|
950
|
-
"
|
951
|
-
"
|
952
|
-
"
|
953
|
-
"
|
954
|
-
"
|
955
|
-
]
|
950
|
+
"dates",
|
951
|
+
"integers",
|
952
|
+
"records",
|
953
|
+
"refactoring",
|
954
|
+
"sorting",
|
955
|
+
"strings",
|
956
|
+
"text-formatting"
|
957
|
+
],
|
958
|
+
"unlocked_by": "series",
|
959
|
+
"uuid": "7aa53a27-4ff3-4891-809f-2af728eb55a0"
|
956
960
|
},
|
957
961
|
{
|
958
|
-
"uuid": "9be60690-39bb-4173-a2ed-faa4acd8f38f",
|
959
|
-
"slug": "poker",
|
960
962
|
"core": false,
|
961
|
-
"unlocked_by": "tournament",
|
962
963
|
"difficulty": 5,
|
964
|
+
"slug": "poker",
|
963
965
|
"topics": [
|
964
|
-
"
|
965
|
-
"
|
966
|
-
"
|
967
|
-
"
|
968
|
-
"
|
969
|
-
"
|
970
|
-
]
|
966
|
+
"equality",
|
967
|
+
"games",
|
968
|
+
"parsing",
|
969
|
+
"pattern-matching",
|
970
|
+
"sequences",
|
971
|
+
"strings"
|
972
|
+
],
|
973
|
+
"unlocked_by": "tournament",
|
974
|
+
"uuid": "9be60690-39bb-4173-a2ed-faa4acd8f38f"
|
971
975
|
},
|
972
976
|
{
|
973
|
-
"uuid": "333231db-2605-438e-9eb0-d1bdc51c7419",
|
974
|
-
"slug": "variable-length-quantity",
|
975
977
|
"core": false,
|
976
|
-
"unlocked_by": "grains",
|
977
978
|
"difficulty": 5,
|
979
|
+
"slug": "variable-length-quantity",
|
978
980
|
"topics": [
|
979
|
-
"
|
980
|
-
"
|
981
|
-
"
|
982
|
-
]
|
981
|
+
"bitwise-operations",
|
982
|
+
"integers",
|
983
|
+
"transforming"
|
984
|
+
],
|
985
|
+
"unlocked_by": "grains",
|
986
|
+
"uuid": "333231db-2605-438e-9eb0-d1bdc51c7419"
|
983
987
|
},
|
984
988
|
{
|
985
|
-
"uuid": "09d0d78f-f262-4f34-b1de-c2acd7ed80cd",
|
986
|
-
"slug": "forth",
|
987
989
|
"core": false,
|
988
|
-
"unlocked_by": "bracket-push",
|
989
990
|
"difficulty": 8,
|
991
|
+
"slug": "forth",
|
990
992
|
"topics": [
|
991
|
-
"
|
992
|
-
"
|
993
|
-
"
|
994
|
-
]
|
993
|
+
"domain-specific-languages",
|
994
|
+
"parsing",
|
995
|
+
"stacks"
|
996
|
+
],
|
997
|
+
"unlocked_by": "bracket-push",
|
998
|
+
"uuid": "09d0d78f-f262-4f34-b1de-c2acd7ed80cd"
|
995
999
|
},
|
996
1000
|
{
|
997
|
-
"uuid": "94a21509-ebd5-4a66-bb0e-0341e57e3c73",
|
998
|
-
"slug": "change",
|
999
1001
|
"core": false,
|
1000
|
-
"unlocked_by": "kindergarten-garden",
|
1001
1002
|
"difficulty": 5,
|
1003
|
+
"slug": "change",
|
1002
1004
|
"topics": [
|
1003
|
-
"
|
1004
|
-
"
|
1005
|
-
"
|
1006
|
-
"
|
1007
|
-
"
|
1008
|
-
]
|
1005
|
+
"algorithms",
|
1006
|
+
"arrays",
|
1007
|
+
"control-flow-(loops)",
|
1008
|
+
"mathematics",
|
1009
|
+
"searching"
|
1010
|
+
],
|
1011
|
+
"unlocked_by": "kindergarten-garden",
|
1012
|
+
"uuid": "94a21509-ebd5-4a66-bb0e-0341e57e3c73"
|
1009
1013
|
},
|
1010
1014
|
{
|
1011
|
-
"uuid": "8d5aaf47-7503-4797-85ed-d35a8755cfd4",
|
1012
|
-
"slug": "bowling",
|
1013
1015
|
"core": false,
|
1014
|
-
"unlocked_by": "queen-attack",
|
1015
1016
|
"difficulty": 5,
|
1017
|
+
"slug": "bowling",
|
1016
1018
|
"topics": [
|
1017
|
-
"
|
1018
|
-
"
|
1019
|
-
"
|
1020
|
-
]
|
1019
|
+
"algorithms",
|
1020
|
+
"arrays",
|
1021
|
+
"control-flow-(conditionals)"
|
1022
|
+
],
|
1023
|
+
"unlocked_by": "queen-attack",
|
1024
|
+
"uuid": "8d5aaf47-7503-4797-85ed-d35a8755cfd4"
|
1021
1025
|
},
|
1022
1026
|
{
|
1023
|
-
"
|
1027
|
+
"deprecated": true,
|
1024
1028
|
"slug": "binary",
|
1025
|
-
"
|
1029
|
+
"uuid": "bf2dcbc4-266f-4cad-9cd7-76d446360a5d"
|
1026
1030
|
},
|
1027
1031
|
{
|
1028
|
-
"
|
1032
|
+
"deprecated": true,
|
1029
1033
|
"slug": "counter",
|
1030
|
-
"
|
1034
|
+
"uuid": "9a06556b-a661-4329-97a1-b5d0f0c7590c"
|
1031
1035
|
},
|
1032
1036
|
{
|
1033
|
-
"
|
1037
|
+
"deprecated": true,
|
1034
1038
|
"slug": "hexadecimal",
|
1035
|
-
"
|
1039
|
+
"uuid": "0c9cef3d-57f6-479a-aca4-25f310426d6a"
|
1036
1040
|
},
|
1037
1041
|
{
|
1038
|
-
"
|
1042
|
+
"deprecated": true,
|
1039
1043
|
"slug": "octal",
|
1040
|
-
"
|
1044
|
+
"uuid": "4840c889-ebe5-4082-98c0-b9ed8618f6eb"
|
1041
1045
|
},
|
1042
1046
|
{
|
1043
|
-
"
|
1047
|
+
"deprecated": true,
|
1044
1048
|
"slug": "trinary",
|
1045
|
-
"
|
1049
|
+
"uuid": "52af9f03-8b6b-4d75-a363-124f3269dccd"
|
1046
1050
|
}
|
1047
|
-
]
|
1048
|
-
|
1051
|
+
],
|
1052
|
+
"foregone": [
|
1053
|
+
"space-age",
|
1054
|
+
"linked-list",
|
1055
|
+
"simple-linked-list"
|
1056
|
+
],
|
1057
|
+
"ignore_pattern": "example(?!.*test)",
|
1058
|
+
"language": "Go"
|
1059
|
+
}
|