trackler 2.2.1.160 → 2.2.1.161

Sign up to get free protection for your applications and to get access to all the features.
Files changed (100) hide show
  1. checksums.yaml +4 -4
  2. data/lib/trackler/version.rb +1 -1
  3. data/tracks/ballerina/.gitignore +4 -0
  4. data/tracks/ballerina/.travis.yml +5 -0
  5. data/tracks/ballerina/LICENSE +21 -0
  6. data/tracks/ballerina/README.md +67 -0
  7. data/tracks/ballerina/bin/fetch-configlet +32 -0
  8. data/tracks/ballerina/config.json +11 -0
  9. data/tracks/ballerina/config/exercise-readme-insert.md +0 -0
  10. data/tracks/ballerina/config/exercise_readme.go.tmpl +16 -0
  11. data/tracks/ballerina/config/maintainers.json +4 -0
  12. data/tracks/ballerina/docs/ABOUT.md +0 -0
  13. data/tracks/ballerina/docs/INSTALLATION.md +0 -0
  14. data/tracks/ballerina/docs/LEARNING.md +0 -0
  15. data/tracks/ballerina/docs/RESOURCES.md +0 -0
  16. data/tracks/ballerina/docs/TESTS.md +0 -0
  17. data/tracks/ballerina/img/.keep +0 -0
  18. data/tracks/c/config.json +1 -1
  19. data/tracks/kotlin/config.json +400 -86
  20. data/tracks/kotlin/config/maintainers.json +10 -0
  21. data/tracks/objective-c/config.json +208 -208
  22. data/tracks/objective-c/config/maintainers.json +16 -16
  23. data/tracks/objective-c/docs/ABOUT.md +5 -1
  24. data/tracks/powershell/config.json +1 -1
  25. data/tracks/powershell/exercises/reverse-string/ReverseString.example.ps1 +13 -0
  26. data/tracks/powershell/exercises/reverse-string/ReverseString.ps1 +13 -1
  27. data/tracks/powershell/exercises/sum-of-multiples/SumOfMultiples.example.ps1 +18 -0
  28. data/tracks/powershell/exercises/sum-of-multiples/SumOfMultiples.ps1 +18 -0
  29. data/tracks/prolog/config.json +31 -63
  30. data/tracks/prolog/config/maintainers.json +8 -8
  31. data/tracks/prolog/docs/SNIPPET.txt +10 -5
  32. data/tracks/python/config.json +1 -0
  33. data/tracks/python/docs/ABOUT.md +8 -8
  34. data/tracks/python/exercises/all-your-base/all_your_base_test.py +1 -1
  35. data/tracks/python/exercises/allergies/allergies_test.py +1 -1
  36. data/tracks/python/exercises/alphametics/alphametics_test.py +1 -1
  37. data/tracks/python/exercises/anagram/anagram_test.py +1 -1
  38. data/tracks/python/exercises/armstrong-numbers/armstrong_numbers_test.py +1 -1
  39. data/tracks/python/exercises/bank-account/bank_account_test.py +1 -1
  40. data/tracks/python/exercises/beer-song/beer_song_test.py +1 -1
  41. data/tracks/python/exercises/binary-search-tree/binary_search_tree_test.py +1 -1
  42. data/tracks/python/exercises/binary-search/binary_search_test.py +1 -1
  43. data/tracks/python/exercises/binary/binary_test.py +1 -1
  44. data/tracks/python/exercises/bob/bob_test.py +1 -1
  45. data/tracks/python/exercises/book-store/book_store_test.py +1 -1
  46. data/tracks/python/exercises/bowling/bowling_test.py +1 -1
  47. data/tracks/python/exercises/bracket-push/bracket_push_test.py +1 -1
  48. data/tracks/python/exercises/collatz-conjecture/collatz_conjecture_test.py +1 -1
  49. data/tracks/python/exercises/diamond/diamond_test.py +1 -1
  50. data/tracks/python/exercises/etl/etl_test.py +1 -1
  51. data/tracks/python/exercises/flatten-array/flatten_array_test.py +1 -1
  52. data/tracks/python/exercises/grade-school/grade_school_test.py +1 -1
  53. data/tracks/python/exercises/hello-world/hello_world_test.py +1 -1
  54. data/tracks/python/exercises/house/house_test.py +1 -1
  55. data/tracks/python/exercises/isbn-verifier/isbn_verifier_test.py +1 -1
  56. data/tracks/python/exercises/isogram/isogram_test.py +1 -1
  57. data/tracks/python/exercises/kindergarten-garden/kindergarten_garden_test.py +1 -1
  58. data/tracks/python/exercises/largest-series-product/largest_series_product_test.py +1 -1
  59. data/tracks/python/exercises/leap/leap_test.py +1 -1
  60. data/tracks/python/exercises/linked-list/linked_list_test.py +1 -1
  61. data/tracks/python/exercises/luhn/luhn_test.py +1 -1
  62. data/tracks/python/exercises/markdown/markdown_test.py +1 -1
  63. data/tracks/python/exercises/nth-prime/nth_prime_test.py +1 -1
  64. data/tracks/python/exercises/nucleotide-count/nucleotide_count_test.py +1 -1
  65. data/tracks/python/exercises/ocr-numbers/ocr_numbers_test.py +1 -1
  66. data/tracks/python/exercises/palindrome-products/palindrome_products_test.py +1 -1
  67. data/tracks/python/exercises/pangram/pangram_test.py +1 -1
  68. data/tracks/python/exercises/phone-number/phone_number_test.py +1 -1
  69. data/tracks/python/exercises/pig-latin/pig_latin_test.py +1 -1
  70. data/tracks/python/exercises/point-mutations/point_mutations_test.py +1 -1
  71. data/tracks/python/exercises/protein-translation/protein_translation_test.py +1 -1
  72. data/tracks/python/exercises/rail-fence-cipher/rail_fence_cipher_test.py +1 -1
  73. data/tracks/python/exercises/rational-numbers/rational_numbers_test.py +1 -1
  74. data/tracks/python/exercises/react/react_test.py +1 -1
  75. data/tracks/python/exercises/rectangles/rectangles_test.py +1 -1
  76. data/tracks/python/exercises/reverse-string/reverse_string_test.py +1 -1
  77. data/tracks/python/exercises/rna-transcription/rna_transcription_test.py +1 -1
  78. data/tracks/python/exercises/robot-name/robot_name_test.py +1 -1
  79. data/tracks/python/exercises/robot-simulator/robot_simulator_test.py +1 -1
  80. data/tracks/python/exercises/roman-numerals/roman_numerals_test.py +1 -1
  81. data/tracks/python/exercises/rotational-cipher/rotational_cipher_test.py +1 -1
  82. data/tracks/python/exercises/run-length-encoding/run_length_encoding_test.py +1 -1
  83. data/tracks/python/exercises/saddle-points/saddle_points_test.py +1 -1
  84. data/tracks/python/exercises/scrabble-score/scrabble_score_test.py +1 -1
  85. data/tracks/python/exercises/secret-handshake/secret_handshake_test.py +1 -1
  86. data/tracks/python/exercises/simple-cipher/simple_cipher_test.py +1 -1
  87. data/tracks/python/exercises/simple-linked-list/simple_linked_list_test.py +1 -1
  88. data/tracks/python/exercises/tournament/tournament_test.py +1 -1
  89. data/tracks/python/exercises/transpose/transpose_test.py +1 -1
  90. data/tracks/python/exercises/tree-building/tree_building_test.py +1 -1
  91. data/tracks/python/exercises/twelve-days/twelve_days_test.py +1 -3
  92. data/tracks/python/exercises/two-fer/two_fer_test.py +1 -1
  93. data/tracks/python/exercises/variable-length-quantity/variable_length_quantity_test.py +1 -1
  94. data/tracks/python/exercises/word-count/word_count_test.py +1 -1
  95. data/tracks/python/exercises/word-search/word_search_test.py +1 -1
  96. data/tracks/python/exercises/yacht/yacht_test.py +1 -1
  97. data/tracks/swift/config.json +369 -353
  98. data/tracks/swift/config/maintainers.json +16 -16
  99. data/tracks/vimscript/docs/ABOUT.md +23 -34
  100. metadata +18 -2
@@ -5,7 +5,7 @@ import roman_numerals
5
5
 
6
6
  # Tests adapted from `problem-specifications//canonical-data.json` @ v1.2.0
7
7
 
8
- class RomanTest(unittest.TestCase):
8
+ class RomanNumeralsTest(unittest.TestCase):
9
9
  numerals = {
10
10
  1: 'I',
11
11
  2: 'II',
@@ -5,7 +5,7 @@ import rotational_cipher
5
5
 
6
6
  # Tests adapted from `problem-specifications//canonical-data.json` @ v1.2.0
7
7
 
8
- class RotationalCipher(unittest.TestCase):
8
+ class RotationalCipherTest(unittest.TestCase):
9
9
  def test_rotate_a_by_0(self):
10
10
  self.assertEqual(rotational_cipher.rotate('a', 0), 'a')
11
11
 
@@ -5,7 +5,7 @@ from run_length_encoding import encode, decode
5
5
 
6
6
  # Tests adapted from `problem-specifications//canonical-data.json` @ v1.1.0
7
7
 
8
- class RunLengthEncodingTests(unittest.TestCase):
8
+ class RunLengthEncodingTest(unittest.TestCase):
9
9
  def test_encode_empty_string(self):
10
10
  self.assertMultiLineEqual(encode(''), '')
11
11
 
@@ -12,7 +12,7 @@ from saddle_points import saddle_points
12
12
 
13
13
  # Tests adapted from `problem-specifications//canonical-data.json` @ v1.1.0
14
14
 
15
- class SaddlePointTest(unittest.TestCase):
15
+ class SaddlePointsTest(unittest.TestCase):
16
16
  def test_identify_single_saddle_point(self):
17
17
  matrix = [[9, 8, 7], [5, 3, 2], [6, 6, 7]]
18
18
  self.assertEqual(saddle_points(matrix), set([(1, 0)]))
@@ -5,7 +5,7 @@ from scrabble_score import score
5
5
 
6
6
  # Tests adapted from `problem-specifications//canonical-data.json` @ v1.1.0
7
7
 
8
- class WordTest(unittest.TestCase):
8
+ class ScrabbleScoreTest(unittest.TestCase):
9
9
  def test_lowercase_letter(self):
10
10
  self.assertEqual(score("a"), 1)
11
11
 
@@ -5,7 +5,7 @@ from secret_handshake import handshake, secret_code
5
5
 
6
6
  # Tests adapted from `problem-specifications//canonical-data.json` @ v1.2.0
7
7
 
8
- class HandshakeTest(unittest.TestCase):
8
+ class SecretHandshakeTest(unittest.TestCase):
9
9
  def test_wink_for_1(self):
10
10
  self.assertEqual(handshake(1), ['wink'])
11
11
 
@@ -3,7 +3,7 @@ import unittest
3
3
  from simple_cipher import Caesar, Cipher
4
4
 
5
5
 
6
- class CipherTest(unittest.TestCase):
6
+ class SimpleCipherTest(unittest.TestCase):
7
7
  def test_caesar_encode1(self):
8
8
  self.assertEqual(Caesar().encode('itisawesomeprogramminginpython'),
9
9
  'lwlvdzhvrphsurjudpplqjlqsbwkrq')
@@ -5,7 +5,7 @@ from simple_linked_list import LinkedList, EmptyListException
5
5
 
6
6
  # No canonical data available for this exercise
7
7
 
8
- class LinkedListTest(unittest.TestCase):
8
+ class SimpleLinkedListTest(unittest.TestCase):
9
9
  def test_empty_list_has_len_zero(self):
10
10
  sut = LinkedList()
11
11
  self.assertEqual(len(sut), 0)
@@ -5,7 +5,7 @@ from tournament import tally
5
5
 
6
6
  # Tests adapted from `problem-specifications//canonical-data.json` @ v1.4.0
7
7
 
8
- class TestTournament(unittest.TestCase):
8
+ class TournamentTest(unittest.TestCase):
9
9
  def test_just_the_header_if_no_input(self):
10
10
  self.assertEqual(
11
11
  tally(''),
@@ -4,7 +4,7 @@ from transpose import transpose
4
4
 
5
5
  # Tests adapted from `problem-specifications//canonical-data.json` @ v1.1.0
6
6
 
7
- class TransposeTests(unittest.TestCase):
7
+ class TransposeTest(unittest.TestCase):
8
8
  def test_empty_string(self):
9
9
  input_line = ""
10
10
  expected = ""
@@ -3,7 +3,7 @@ import unittest
3
3
  from tree_building import Record, BuildTree
4
4
 
5
5
 
6
- class TestBuildingTest(unittest.TestCase):
6
+ class TreeBuildingTest(unittest.TestCase):
7
7
  """
8
8
  Record(record_id, parent_id): records given to be processed
9
9
  Node(node_id): Node in tree
@@ -5,7 +5,7 @@ from twelve_days import recite
5
5
 
6
6
  # Tests adapted from `problem-specifications//canonical-data.json` @ v1.1.0
7
7
 
8
- class VerseTests(unittest.TestCase):
8
+ class TwelveDaysTest(unittest.TestCase):
9
9
  def test_verse1(self):
10
10
  expected = ["On the first day of Christmas my true love gave to me, "
11
11
  "a Partridge in a Pear Tree."]
@@ -133,8 +133,6 @@ class VerseTests(unittest.TestCase):
133
133
  "and a Partridge in a Pear Tree."]
134
134
  self.assertEqual(recite(12, 12), expected)
135
135
 
136
-
137
- class LyricsTests(unittest.TestCase):
138
136
  def test_first_three_verses_of_the_song(self):
139
137
  expected = [recite(n, n)[0] for n in range(1, 4)]
140
138
  self.assertEqual(recite(1, 3), expected)
@@ -5,7 +5,7 @@ from two_fer import two_fer
5
5
 
6
6
  # Tests adapted from `problem-specifications//canonical-data.json` @ v1.2.0
7
7
 
8
- class Two_Fer_test(unittest.TestCase):
8
+ class TwoFerTest(unittest.TestCase):
9
9
  def test_no_name_given(self):
10
10
  self.assertEqual(two_fer(), 'One for you, one for me.')
11
11
 
@@ -5,7 +5,7 @@ from variable_length_quantity import encode, decode
5
5
 
6
6
  # Tests adapted from `problem-specifications//canonical-data.json` @ v1.1.0
7
7
 
8
- class TestVLQ(unittest.TestCase):
8
+ class VariableLengthQuantityTest(unittest.TestCase):
9
9
  def test_zero(self):
10
10
  self.assertEqual(encode([0x0]), [0x0])
11
11
 
@@ -5,7 +5,7 @@ from word_count import word_count
5
5
 
6
6
  # Tests adapted from `problem-specifications//canonical-data.json` @ v1.2.0
7
7
 
8
- class WordCountTests(unittest.TestCase):
8
+ class WordCountTest(unittest.TestCase):
9
9
 
10
10
  def test_count_one_word(self):
11
11
  self.assertEqual(
@@ -5,7 +5,7 @@ from word_search import WordSearch, Point
5
5
 
6
6
  # Tests adapted from `problem-specifications//canonical-data.json` @ v1.2.0
7
7
 
8
- class WordSearchTests(unittest.TestCase):
8
+ class WordSearchTest(unittest.TestCase):
9
9
 
10
10
  def test_initial_game_grid(self):
11
11
  puzzle = ['jefblpepre']
@@ -6,7 +6,7 @@ from yacht import score
6
6
 
7
7
  # Tests adapted from `problem-specifications//canonical-data.json` @ v1.1.0
8
8
 
9
- class YachtTests(unittest.TestCase):
9
+ class YachtTest(unittest.TestCase):
10
10
  def test_yacht(self):
11
11
  self.assertEqual(score([5, 5, 5, 5, 5], yacht.YACHT), 50)
12
12
 
@@ -1,959 +1,975 @@
1
1
  {
2
+ "language": "Swift",
2
3
  "active": true,
4
+ "blurb": "",
3
5
  "exercises": [
4
6
  {
7
+ "slug": "hello-world",
8
+ "uuid": "63906530-1e13-491a-ab17-aee66d619fd8",
5
9
  "core": false,
10
+ "unlocked_by": null,
6
11
  "difficulty": 1,
7
- "slug": "hello-world",
8
12
  "topics": [
9
13
  "optional_values",
10
14
  "text_formatting"
11
- ],
12
- "unlocked_by": null,
13
- "uuid": "63906530-1e13-491a-ab17-aee66d619fd8"
15
+ ]
14
16
  },
15
17
  {
18
+ "slug": "two-fer",
19
+ "uuid": "ed859c29-fae0-4a32-9074-ac3c3cf324c2",
16
20
  "core": false,
21
+ "unlocked_by": null,
17
22
  "difficulty": 1,
18
- "slug": "two-fer",
19
23
  "topics": [
20
24
  "optional_values",
21
25
  "text_formatting"
22
- ],
23
- "unlocked_by": null,
24
- "uuid": "ed859c29-fae0-4a32-9074-ac3c3cf324c2"
26
+ ]
25
27
  },
26
28
  {
29
+ "slug": "leap",
30
+ "uuid": "53ca7b6a-cdba-4d6d-a564-06e59700a6e4",
27
31
  "core": false,
32
+ "unlocked_by": null,
28
33
  "difficulty": 1,
29
- "slug": "leap",
30
34
  "topics": [
31
35
  "integers"
32
- ],
33
- "unlocked_by": null,
34
- "uuid": "53ca7b6a-cdba-4d6d-a564-06e59700a6e4"
36
+ ]
35
37
  },
36
38
  {
39
+ "slug": "gigasecond",
40
+ "uuid": "0a1ae85a-1d89-453a-8b97-303181d7874d",
37
41
  "core": false,
42
+ "unlocked_by": null,
38
43
  "difficulty": 1,
39
- "slug": "gigasecond",
40
44
  "topics": [
41
45
  "dates"
42
- ],
43
- "unlocked_by": null,
44
- "uuid": "0a1ae85a-1d89-453a-8b97-303181d7874d"
46
+ ]
45
47
  },
46
48
  {
49
+ "slug": "difference-of-squares",
50
+ "uuid": "ef114733-886b-4d4b-a713-3ba169a85025",
47
51
  "core": false,
52
+ "unlocked_by": null,
48
53
  "difficulty": 1,
49
- "slug": "difference-of-squares",
50
54
  "topics": [
51
55
  "integers"
52
- ],
53
- "unlocked_by": null,
54
- "uuid": "ef114733-886b-4d4b-a713-3ba169a85025"
56
+ ]
55
57
  },
56
58
  {
59
+ "slug": "rna-transcription",
60
+ "uuid": "537f8ccd-31ac-41d3-a5fa-39359340d1cb",
57
61
  "core": false,
62
+ "unlocked_by": null,
58
63
  "difficulty": 1,
59
- "slug": "rna-transcription",
60
64
  "topics": [
61
65
  "strings",
62
66
  "transforming"
63
- ],
64
- "unlocked_by": null,
65
- "uuid": "537f8ccd-31ac-41d3-a5fa-39359340d1cb"
67
+ ]
66
68
  },
67
69
  {
70
+ "slug": "sum-of-multiples",
71
+ "uuid": "b9736756-7022-4a82-b0ea-47b738b1b607",
68
72
  "core": false,
73
+ "unlocked_by": null,
69
74
  "difficulty": 1,
70
- "slug": "sum-of-multiples",
71
75
  "topics": [
72
76
  "lists",
73
77
  "transforming"
74
- ],
75
- "unlocked_by": null,
76
- "uuid": "b9736756-7022-4a82-b0ea-47b738b1b607"
78
+ ]
77
79
  },
78
80
  {
81
+ "slug": "space-age",
82
+ "uuid": "aaa19946-ab8b-4035-815a-a1f8218ea38b",
79
83
  "core": false,
84
+ "unlocked_by": null,
80
85
  "difficulty": 1,
81
- "slug": "space-age",
82
86
  "topics": [
83
87
  "discriminated_unions",
84
88
  "floating_point_numbers"
85
- ],
86
- "unlocked_by": null,
87
- "uuid": "aaa19946-ab8b-4035-815a-a1f8218ea38b"
89
+ ]
88
90
  },
89
91
  {
92
+ "slug": "bob",
93
+ "uuid": "49051b88-063a-4fa1-b920-6ca9a6f9bc60",
90
94
  "core": false,
95
+ "unlocked_by": null,
91
96
  "difficulty": 2,
92
- "slug": "bob",
93
97
  "topics": [
94
98
  "control_flow_if_else_statements",
95
99
  "strings"
96
- ],
97
- "unlocked_by": null,
98
- "uuid": "49051b88-063a-4fa1-b920-6ca9a6f9bc60"
100
+ ]
99
101
  },
100
102
  {
103
+ "slug": "grains",
104
+ "uuid": "b7d90715-b241-4c59-8457-f637efd14bda",
101
105
  "core": false,
106
+ "unlocked_by": null,
102
107
  "difficulty": 2,
103
- "slug": "grains",
104
108
  "topics": [
105
109
  "integers"
106
- ],
107
- "unlocked_by": null,
108
- "uuid": "b7d90715-b241-4c59-8457-f637efd14bda"
110
+ ]
109
111
  },
110
112
  {
113
+ "slug": "hamming",
114
+ "uuid": "b3cd804f-4ac2-44c7-997b-066779a1b5e6",
111
115
  "core": false,
116
+ "unlocked_by": null,
112
117
  "difficulty": 2,
113
- "slug": "hamming",
114
118
  "topics": [
115
119
  "filtering",
116
120
  "strings"
117
- ],
118
- "unlocked_by": null,
119
- "uuid": "b3cd804f-4ac2-44c7-997b-066779a1b5e6"
121
+ ]
120
122
  },
121
123
  {
124
+ "slug": "nucleotide-count",
125
+ "uuid": "82fe74be-1589-41fc-966c-10c7b756a2f2",
122
126
  "core": false,
127
+ "unlocked_by": null,
123
128
  "difficulty": 2,
124
- "slug": "nucleotide-count",
125
129
  "topics": [
126
130
  "maps",
127
131
  "strings"
128
- ],
129
- "unlocked_by": null,
130
- "uuid": "82fe74be-1589-41fc-966c-10c7b756a2f2"
132
+ ]
131
133
  },
132
134
  {
135
+ "slug": "accumulate",
136
+ "uuid": "cb5bc145-8249-4b3b-bcb3-b8d7805f2a14",
133
137
  "core": false,
138
+ "unlocked_by": null,
134
139
  "difficulty": 2,
135
- "slug": "accumulate",
136
140
  "topics": [
137
141
  "recursion",
138
142
  "transforming"
139
- ],
140
- "unlocked_by": null,
141
- "uuid": "cb5bc145-8249-4b3b-bcb3-b8d7805f2a14"
143
+ ]
142
144
  },
143
145
  {
146
+ "slug": "raindrops",
147
+ "uuid": "60b3b28e-06cb-4a5e-b458-380b6f542ed0",
144
148
  "core": false,
149
+ "unlocked_by": null,
145
150
  "difficulty": 2,
146
- "slug": "raindrops",
147
151
  "topics": [
148
152
  "filtering",
149
153
  "text_formatting"
150
- ],
151
- "unlocked_by": null,
152
- "uuid": "60b3b28e-06cb-4a5e-b458-380b6f542ed0"
154
+ ]
153
155
  },
154
156
  {
157
+ "slug": "grade-school",
158
+ "uuid": "d1ab2908-8f95-42cd-b40e-b571287ea744",
155
159
  "core": false,
160
+ "unlocked_by": null,
156
161
  "difficulty": 2,
157
- "slug": "grade-school",
158
162
  "topics": [
159
163
  "maps",
160
164
  "sorting"
161
- ],
162
- "unlocked_by": null,
163
- "uuid": "d1ab2908-8f95-42cd-b40e-b571287ea744"
165
+ ]
164
166
  },
165
167
  {
168
+ "slug": "etl",
169
+ "uuid": "71eb6dd0-1d0d-4aaa-bb22-604cece45bd7",
166
170
  "core": false,
171
+ "unlocked_by": null,
167
172
  "difficulty": 2,
168
- "slug": "etl",
169
173
  "topics": [
170
174
  "maps",
171
175
  "transforming"
172
- ],
173
- "unlocked_by": null,
174
- "uuid": "71eb6dd0-1d0d-4aaa-bb22-604cece45bd7"
176
+ ]
175
177
  },
176
178
  {
179
+ "slug": "isogram",
180
+ "uuid": "066d2666-deeb-4d99-8314-36d72fbf9afd",
177
181
  "core": false,
182
+ "unlocked_by": null,
178
183
  "difficulty": 2,
179
- "slug": "isogram",
180
184
  "topics": [
181
185
  "filtering",
182
186
  "strings"
183
- ],
184
- "unlocked_by": null,
185
- "uuid": "066d2666-deeb-4d99-8314-36d72fbf9afd"
187
+ ]
186
188
  },
187
189
  {
188
- "uuid": "cf91efe6-0c6f-4c6f-b3da-e828dff03ad9",
189
190
  "slug": "list-ops",
191
+ "uuid": "cf91efe6-0c6f-4c6f-b3da-e828dff03ad9",
190
192
  "core": false,
191
193
  "unlocked_by": null,
192
194
  "difficulty": 2,
193
195
  "topics": [
194
- "variables",
196
+ "conditionals",
197
+ "filtering",
198
+ "functional_programming",
195
199
  "lists",
196
200
  "loops",
197
- "filtering",
198
201
  "searching",
199
- "conditionals",
200
- "functional_programming"
202
+ "variables"
201
203
  ]
202
204
  },
203
205
  {
206
+ "slug": "clock",
207
+ "uuid": "3ee3ebf1-5cc0-4905-afc4-17e77b9d55a5",
204
208
  "core": false,
209
+ "unlocked_by": null,
205
210
  "difficulty": 3,
206
- "slug": "clock",
207
211
  "topics": [
208
212
  "structural_equality",
209
213
  "time"
210
- ],
211
- "unlocked_by": null,
212
- "uuid": "3ee3ebf1-5cc0-4905-afc4-17e77b9d55a5"
214
+ ]
213
215
  },
214
216
  {
217
+ "slug": "triangle",
218
+ "uuid": "27671176-d9e4-4060-816c-be6158568269",
215
219
  "core": false,
220
+ "unlocked_by": null,
216
221
  "difficulty": 3,
217
- "slug": "triangle",
218
222
  "topics": [
219
223
  "discriminated_unions",
220
224
  "integers"
221
- ],
222
- "unlocked_by": null,
223
- "uuid": "27671176-d9e4-4060-816c-be6158568269"
225
+ ]
224
226
  },
225
227
  {
228
+ "slug": "robot-name",
229
+ "uuid": "219f45e1-1475-431e-a087-3c36a557e1a0",
226
230
  "core": false,
231
+ "unlocked_by": null,
227
232
  "difficulty": 3,
228
- "slug": "robot-name",
229
233
  "topics": [
230
234
  "randomness",
231
235
  "strings"
232
- ],
233
- "unlocked_by": null,
234
- "uuid": "219f45e1-1475-431e-a087-3c36a557e1a0"
236
+ ]
235
237
  },
236
238
  {
239
+ "slug": "scrabble-score",
240
+ "uuid": "5d215619-65d0-4e0c-b592-3eb0747e43c5",
237
241
  "core": false,
242
+ "unlocked_by": null,
238
243
  "difficulty": 3,
239
- "slug": "scrabble-score",
240
244
  "topics": [
241
245
  "transforming"
242
- ],
243
- "unlocked_by": null,
244
- "uuid": "5d215619-65d0-4e0c-b592-3eb0747e43c5"
246
+ ]
245
247
  },
246
248
  {
249
+ "slug": "kindergarten-garden",
250
+ "uuid": "4420075e-e1b2-4790-922e-4a0650d87036",
247
251
  "core": false,
252
+ "unlocked_by": null,
248
253
  "difficulty": 3,
249
- "slug": "kindergarten-garden",
250
254
  "topics": [
251
255
  "enumerations",
252
256
  "parsing"
253
- ],
254
- "unlocked_by": null,
255
- "uuid": "4420075e-e1b2-4790-922e-4a0650d87036"
257
+ ]
256
258
  },
257
259
  {
260
+ "slug": "queen-attack",
261
+ "uuid": "5d590847-775c-4b16-9a11-39b208b5c0b2",
258
262
  "core": false,
263
+ "unlocked_by": null,
259
264
  "difficulty": 3,
260
- "slug": "queen-attack",
261
265
  "topics": [
262
266
  "tuples"
263
- ],
264
- "unlocked_by": null,
265
- "uuid": "5d590847-775c-4b16-9a11-39b208b5c0b2"
267
+ ]
266
268
  },
267
269
  {
270
+ "slug": "strain",
271
+ "uuid": "2be64fe9-cc46-437b-ad3f-43ca3ac7a786",
268
272
  "core": false,
273
+ "unlocked_by": null,
269
274
  "difficulty": 3,
270
- "slug": "strain",
271
275
  "topics": [
272
276
  "filtering",
273
277
  "sequences"
274
- ],
275
- "unlocked_by": null,
276
- "uuid": "2be64fe9-cc46-437b-ad3f-43ca3ac7a786"
278
+ ]
277
279
  },
278
280
  {
281
+ "slug": "sieve",
282
+ "uuid": "571de186-7791-4fc3-b6b2-5ab0ed50a2cb",
279
283
  "core": false,
284
+ "unlocked_by": null,
280
285
  "difficulty": 3,
281
- "slug": "sieve",
282
286
  "topics": [
283
287
  "filtering",
284
288
  "mathematics"
285
- ],
286
- "unlocked_by": null,
287
- "uuid": "571de186-7791-4fc3-b6b2-5ab0ed50a2cb"
289
+ ]
288
290
  },
289
291
  {
292
+ "slug": "phone-number",
293
+ "uuid": "de217063-bb3a-4593-850e-887fe8b74924",
290
294
  "core": false,
295
+ "unlocked_by": null,
291
296
  "difficulty": 3,
292
- "slug": "phone-number",
293
297
  "topics": [
294
298
  "parsing",
295
299
  "transforming"
296
- ],
297
- "unlocked_by": null,
298
- "uuid": "de217063-bb3a-4593-850e-887fe8b74924"
300
+ ]
299
301
  },
300
302
  {
303
+ "slug": "perfect-numbers",
304
+ "uuid": "3eeb8ae0-c8e6-4388-9e4e-b83b8ad2470e",
301
305
  "core": false,
306
+ "unlocked_by": null,
302
307
  "difficulty": 3,
303
- "slug": "perfect-numbers",
304
308
  "topics": [
305
309
  "discriminated_unions",
306
310
  "integers"
307
- ],
308
- "unlocked_by": null,
309
- "uuid": "3eeb8ae0-c8e6-4388-9e4e-b83b8ad2470e"
311
+ ]
310
312
  },
311
313
  {
314
+ "slug": "robot-simulator",
315
+ "uuid": "2fb516ce-6b89-4e0a-b240-d6f024ed5ff2",
312
316
  "core": false,
317
+ "unlocked_by": null,
313
318
  "difficulty": 3,
314
- "slug": "robot-simulator",
315
319
  "topics": [
316
320
  "records",
317
321
  "tuples"
318
- ],
319
- "unlocked_by": null,
320
- "uuid": "2fb516ce-6b89-4e0a-b240-d6f024ed5ff2"
322
+ ]
321
323
  },
322
324
  {
325
+ "slug": "binary-search",
326
+ "uuid": "a4a4e5a0-0226-4082-9a82-3cba2c2d4786",
323
327
  "core": false,
328
+ "unlocked_by": null,
324
329
  "difficulty": 3,
325
- "slug": "binary-search",
326
330
  "topics": [
327
331
  "lists",
328
332
  "searching"
329
- ],
330
- "unlocked_by": null,
331
- "uuid": "a4a4e5a0-0226-4082-9a82-3cba2c2d4786"
333
+ ]
332
334
  },
333
335
  {
336
+ "slug": "flatten-array",
337
+ "uuid": "b113d981-8fc8-4572-b3e0-7ba7a07419de",
334
338
  "core": false,
339
+ "unlocked_by": null,
335
340
  "difficulty": 3,
336
- "slug": "flatten-array",
337
341
  "topics": [
338
342
  "lists",
339
343
  "looping",
340
344
  "searching"
341
- ],
342
- "unlocked_by": null,
343
- "uuid": "b113d981-8fc8-4572-b3e0-7ba7a07419de"
345
+ ]
344
346
  },
345
347
  {
348
+ "slug": "sublist",
349
+ "uuid": "5bd37dff-8b10-4e96-8b04-a37a8565338b",
346
350
  "core": false,
351
+ "unlocked_by": null,
347
352
  "difficulty": 3,
348
- "slug": "sublist",
349
353
  "topics": [
350
354
  "lists",
351
355
  "looping"
352
- ],
353
- "unlocked_by": null,
354
- "uuid": "5bd37dff-8b10-4e96-8b04-a37a8565338b"
356
+ ]
355
357
  },
356
358
  {
359
+ "slug": "secret-handshake",
360
+ "uuid": "ea9feed8-481a-4bd0-9af8-7ca44433c266",
357
361
  "core": false,
362
+ "unlocked_by": null,
358
363
  "difficulty": 3,
359
- "slug": "secret-handshake",
360
364
  "topics": [
361
365
  "bitwise_operations",
362
366
  "lists"
363
- ],
364
- "unlocked_by": null,
365
- "uuid": "ea9feed8-481a-4bd0-9af8-7ca44433c266"
367
+ ]
366
368
  },
367
369
  {
370
+ "slug": "collatz-conjecture",
371
+ "uuid": "1b068d66-c8de-42a8-a566-03848c9c7941",
368
372
  "core": false,
373
+ "unlocked_by": null,
369
374
  "difficulty": 3,
370
- "slug": "collatz-conjecture",
371
375
  "topics": [
372
376
  "integers",
373
377
  "mathematics"
374
- ],
375
- "unlocked_by": null,
376
- "uuid": "1b068d66-c8de-42a8-a566-03848c9c7941"
378
+ ]
377
379
  },
378
380
  {
381
+ "slug": "diamond",
382
+ "uuid": "6d70fd81-76a4-4e44-a64a-9a070e07e83d",
379
383
  "core": false,
384
+ "unlocked_by": null,
380
385
  "difficulty": 3,
381
- "slug": "diamond",
382
386
  "topics": [
383
387
  "strings"
384
- ],
385
- "unlocked_by": null,
386
- "uuid": "6d70fd81-76a4-4e44-a64a-9a070e07e83d"
388
+ ]
387
389
  },
388
390
  {
391
+ "slug": "isbn-verifier",
392
+ "uuid": "5854447a-ff9f-4321-bd5c-430555b91fc6",
389
393
  "core": false,
394
+ "unlocked_by": null,
390
395
  "difficulty": 3,
391
- "slug": "isbn-verifier",
392
396
  "topics": [
393
397
  "conditionals",
394
398
  "loops",
395
399
  "pattern_matching",
396
400
  "strings"
397
- ],
398
- "unlocked_by": null,
399
- "uuid": "5854447a-ff9f-4321-bd5c-430555b91fc6"
401
+ ]
400
402
  },
401
403
  {
404
+ "slug": "protein-translation",
405
+ "uuid": "72bd3b46-c3ed-4399-a925-9b616cfa1e9b",
402
406
  "core": false,
407
+ "unlocked_by": null,
403
408
  "difficulty": 3,
404
- "slug": "protein-translation",
405
409
  "topics": [
406
- "control-flow-(conditionals)",
407
- "control-flow-(loops)",
408
- "strings",
409
- "algorithms"
410
- ],
411
- "unlocked_by": null,
412
- "uuid": "72bd3b46-c3ed-4399-a925-9b616cfa1e9b"
410
+ "algorithms",
411
+ "control_flow_conditionals",
412
+ "control_flow_loops",
413
+ "strings"
414
+ ]
413
415
  },
414
416
  {
417
+ "slug": "circular-buffer",
418
+ "uuid": "f5499564-62b9-47ab-9ba2-8be6ba453269",
415
419
  "core": false,
420
+ "unlocked_by": null,
416
421
  "difficulty": 3,
417
- "slug": "circular-buffer",
418
422
  "topics": [
419
423
  "arrays",
420
- "control-flow-(conditionals)",
421
- "control-flow-(loops)",
422
- "data-structures",
423
- "exception-handling",
424
+ "control_flow_conditionals",
425
+ "control_flow_loops",
426
+ "data_structures",
427
+ "exception_handling",
424
428
  "lists"
425
- ],
426
- "unlocked_by": null,
427
- "uuid": "f5499564-62b9-47ab-9ba2-8be6ba453269"
429
+ ]
428
430
  },
429
431
  {
430
- "uuid": "1c9dfe22-de66-4437-862b-8921dc7eb25e",
431
432
  "slug": "scale-generator",
433
+ "uuid": "1c9dfe22-de66-4437-862b-8921dc7eb25e",
432
434
  "core": false,
433
435
  "unlocked_by": null,
434
436
  "difficulty": 3,
435
437
  "topics": [
436
- "strings",
438
+ "loops",
437
439
  "pattern_matching",
438
- "loops"
440
+ "strings"
439
441
  ]
440
442
  },
441
443
  {
444
+ "slug": "proverb",
445
+ "uuid": "9604f1ef-4925-4c28-9c59-b986c1a42c7e",
442
446
  "core": false,
447
+ "unlocked_by": null,
443
448
  "difficulty": 3,
444
- "slug": "proverb",
445
449
  "topics": [
446
450
  "algorithms",
447
451
  "strings"
448
- ],
449
- "unlocked_by": null,
450
- "uuid": "9604f1ef-4925-4c28-9c59-b986c1a42c7e"
452
+ ]
451
453
  },
452
454
  {
455
+ "slug": "word-count",
456
+ "uuid": "495a61a4-1bef-402e-a50c-b0d9a2abfe19",
453
457
  "core": false,
458
+ "unlocked_by": null,
454
459
  "difficulty": 4,
455
- "slug": "word-count",
456
460
  "topics": [
457
461
  "maps",
458
462
  "strings",
459
463
  "transforming"
460
- ],
461
- "unlocked_by": null,
462
- "uuid": "495a61a4-1bef-402e-a50c-b0d9a2abfe19"
464
+ ]
463
465
  },
464
466
  {
467
+ "slug": "allergies",
468
+ "uuid": "d9894c7f-afeb-4d34-a967-53285571fdac",
465
469
  "core": false,
470
+ "unlocked_by": null,
466
471
  "difficulty": 4,
467
- "slug": "allergies",
468
472
  "topics": [
469
473
  "bitwise_operations",
470
474
  "enumerations",
471
475
  "filtering"
472
- ],
473
- "unlocked_by": null,
474
- "uuid": "d9894c7f-afeb-4d34-a967-53285571fdac"
476
+ ]
475
477
  },
476
478
  {
479
+ "slug": "beer-song",
480
+ "uuid": "53f022ee-903e-4ee1-aabc-2db0a68d4b1c",
477
481
  "core": false,
482
+ "unlocked_by": null,
478
483
  "difficulty": 4,
479
- "slug": "beer-song",
480
484
  "topics": [
481
485
  "conditionals",
482
486
  "looping",
483
487
  "strings"
484
- ],
485
- "unlocked_by": null,
486
- "uuid": "53f022ee-903e-4ee1-aabc-2db0a68d4b1c"
488
+ ]
487
489
  },
488
490
  {
491
+ "slug": "twelve-days",
492
+ "uuid": "5671c927-5e04-4207-b947-f8e9715aa7ef",
489
493
  "core": false,
494
+ "unlocked_by": null,
490
495
  "difficulty": 4,
491
- "slug": "twelve-days",
492
496
  "topics": [
493
497
  "algorithms",
494
498
  "text_formatting"
495
- ],
496
- "unlocked_by": null,
497
- "uuid": "5671c927-5e04-4207-b947-f8e9715aa7ef"
499
+ ]
498
500
  },
499
501
  {
502
+ "slug": "meetup",
503
+ "uuid": "a306e9d3-5cd0-42c7-99ed-72ad4b5eba24",
500
504
  "core": false,
505
+ "unlocked_by": null,
501
506
  "difficulty": 4,
502
- "slug": "meetup",
503
507
  "topics": [
504
508
  "dates"
505
- ],
506
- "unlocked_by": null,
507
- "uuid": "a306e9d3-5cd0-42c7-99ed-72ad4b5eba24"
509
+ ]
508
510
  },
509
511
  {
512
+ "slug": "anagram",
513
+ "uuid": "f2742e98-d6fe-4280-b4e6-ba1b2fd325f8",
510
514
  "core": false,
515
+ "unlocked_by": null,
511
516
  "difficulty": 4,
512
- "slug": "anagram",
513
517
  "topics": [
514
518
  "filtering",
515
519
  "strings"
516
- ],
517
- "unlocked_by": null,
518
- "uuid": "f2742e98-d6fe-4280-b4e6-ba1b2fd325f8"
520
+ ]
519
521
  },
520
522
  {
523
+ "slug": "series",
524
+ "uuid": "452cd259-2c71-4c90-a0ff-ac39c23e1f55",
521
525
  "core": false,
526
+ "unlocked_by": null,
522
527
  "difficulty": 4,
523
- "slug": "series",
524
528
  "topics": [
525
529
  "lists",
526
530
  "strings",
527
531
  "transforming"
528
- ],
529
- "unlocked_by": null,
530
- "uuid": "452cd259-2c71-4c90-a0ff-ac39c23e1f55"
532
+ ]
531
533
  },
532
534
  {
535
+ "slug": "simple-linked-list",
536
+ "uuid": "6a1d09f6-9a1a-4952-8543-d6a07b8158ce",
533
537
  "core": false,
538
+ "unlocked_by": null,
534
539
  "difficulty": 4,
535
- "slug": "simple-linked-list",
536
540
  "topics": [
537
541
  "lists"
538
- ],
539
- "unlocked_by": null,
540
- "uuid": "6a1d09f6-9a1a-4952-8543-d6a07b8158ce"
542
+ ]
541
543
  },
542
544
  {
545
+ "slug": "acronym",
546
+ "uuid": "7359a818-ffa5-4ce0-be35-cc66654f9af2",
543
547
  "core": false,
548
+ "unlocked_by": null,
544
549
  "difficulty": 4,
545
- "slug": "acronym",
546
550
  "topics": [
547
551
  "strings",
548
552
  "transforming"
549
- ],
550
- "unlocked_by": null,
551
- "uuid": "7359a818-ffa5-4ce0-be35-cc66654f9af2"
553
+ ]
552
554
  },
553
555
  {
556
+ "slug": "matrix",
557
+ "uuid": "84fe8e39-f7e3-4295-be9d-5256b59d800d",
554
558
  "core": false,
559
+ "unlocked_by": null,
555
560
  "difficulty": 4,
556
- "slug": "matrix",
557
561
  "topics": [
558
562
  "matrices",
559
563
  "parsing"
560
- ],
561
- "unlocked_by": null,
562
- "uuid": "84fe8e39-f7e3-4295-be9d-5256b59d800d"
564
+ ]
563
565
  },
564
566
  {
567
+ "slug": "all-your-base",
568
+ "uuid": "77f7a53c-ef83-4f26-b758-5ded1010a61a",
565
569
  "core": false,
570
+ "unlocked_by": null,
566
571
  "difficulty": 4,
567
- "slug": "all-your-base",
568
572
  "topics": [
569
573
  "integers",
570
574
  "transforming"
571
- ],
572
- "unlocked_by": null,
573
- "uuid": "77f7a53c-ef83-4f26-b758-5ded1010a61a"
575
+ ]
574
576
  },
575
577
  {
578
+ "slug": "largest-series-product",
579
+ "uuid": "471e5cdc-438d-4930-b830-cdd4c144740e",
576
580
  "core": false,
581
+ "unlocked_by": null,
577
582
  "difficulty": 4,
578
- "slug": "largest-series-product",
579
583
  "topics": [
580
584
  "integers",
581
585
  "strings",
582
586
  "transforming"
583
- ],
584
- "unlocked_by": null,
585
- "uuid": "471e5cdc-438d-4930-b830-cdd4c144740e"
587
+ ]
586
588
  },
587
589
  {
590
+ "slug": "house",
591
+ "uuid": "880a9644-13b3-4c24-9a95-24454804f804",
588
592
  "core": false,
593
+ "unlocked_by": null,
589
594
  "difficulty": 4,
590
- "slug": "house",
591
595
  "topics": [
592
596
  "algorithms",
593
597
  "text_formatting"
594
- ],
595
- "unlocked_by": null,
596
- "uuid": "880a9644-13b3-4c24-9a95-24454804f804"
598
+ ]
597
599
  },
598
600
  {
601
+ "slug": "pythagorean-triplet",
602
+ "uuid": "24ed2341-31f0-494b-83d0-a9fa74d4f07b",
599
603
  "core": false,
604
+ "unlocked_by": null,
600
605
  "difficulty": 4,
601
- "slug": "pythagorean-triplet",
602
606
  "topics": [
603
607
  "integers",
604
608
  "mathematics",
605
609
  "records"
606
- ],
607
- "unlocked_by": null,
608
- "uuid": "24ed2341-31f0-494b-83d0-a9fa74d4f07b"
610
+ ]
609
611
  },
610
612
  {
613
+ "slug": "saddle-points",
614
+ "uuid": "402469d7-5735-46ea-8122-1faf90ae7d6e",
611
615
  "core": false,
616
+ "unlocked_by": null,
612
617
  "difficulty": 4,
613
- "slug": "saddle-points",
614
618
  "topics": [
615
619
  "lists",
616
620
  "matrices"
617
- ],
618
- "unlocked_by": null,
619
- "uuid": "402469d7-5735-46ea-8122-1faf90ae7d6e"
621
+ ]
620
622
  },
621
623
  {
624
+ "slug": "pascals-triangle",
625
+ "uuid": "3b13f3f5-2d75-4dc0-8be0-e05694425fe2",
622
626
  "core": false,
627
+ "unlocked_by": null,
623
628
  "difficulty": 4,
624
- "slug": "pascals-triangle",
625
629
  "topics": [
626
630
  "lists",
627
631
  "mathematics",
628
632
  "recursion"
629
- ],
630
- "unlocked_by": null,
631
- "uuid": "3b13f3f5-2d75-4dc0-8be0-e05694425fe2"
633
+ ]
632
634
  },
633
635
  {
636
+ "slug": "prime-factors",
637
+ "uuid": "e651057d-a36f-4c81-a341-f12859ac37a3",
634
638
  "core": false,
639
+ "unlocked_by": null,
635
640
  "difficulty": 4,
636
- "slug": "prime-factors",
637
641
  "topics": [
638
642
  "integers",
639
643
  "mathematics"
640
- ],
641
- "unlocked_by": null,
642
- "uuid": "e651057d-a36f-4c81-a341-f12859ac37a3"
644
+ ]
643
645
  },
644
646
  {
647
+ "slug": "pangram",
648
+ "uuid": "c4dc447b-80d5-45a0-983d-25edc34cc6cf",
645
649
  "core": false,
650
+ "unlocked_by": null,
646
651
  "difficulty": 4,
647
- "slug": "pangram",
648
652
  "topics": [
649
653
  "searching",
650
654
  "strings"
651
- ],
652
- "unlocked_by": null,
653
- "uuid": "c4dc447b-80d5-45a0-983d-25edc34cc6cf"
655
+ ]
654
656
  },
655
657
  {
658
+ "slug": "rotational-cipher",
659
+ "uuid": "f6b157cb-ddb0-4c40-baa3-9fc6b58de7ff",
656
660
  "core": false,
661
+ "unlocked_by": null,
657
662
  "difficulty": 4,
658
- "slug": "rotational-cipher",
659
663
  "topics": [
660
664
  "strings",
661
665
  "transforming"
662
- ],
663
- "unlocked_by": null,
664
- "uuid": "f6b157cb-ddb0-4c40-baa3-9fc6b58de7ff"
666
+ ]
665
667
  },
666
668
  {
669
+ "slug": "say",
670
+ "uuid": "0f840c37-a8c0-42da-93f9-d215cb044d53",
667
671
  "core": false,
672
+ "unlocked_by": null,
668
673
  "difficulty": 4,
669
- "slug": "say",
670
674
  "topics": [
671
675
  "loops",
672
676
  "parsing",
673
- "transforming",
674
- "text_formatting"
675
- ],
676
- "unlocked_by": null,
677
- "uuid": "0f840c37-a8c0-42da-93f9-d215cb044d53"
677
+ "text_formatting",
678
+ "transforming"
679
+ ]
678
680
  },
679
681
  {
682
+ "slug": "roman-numerals",
683
+ "uuid": "942d0c4b-eaef-4576-b3f8-383757c53768",
680
684
  "core": false,
685
+ "unlocked_by": null,
681
686
  "difficulty": 5,
682
- "slug": "roman-numerals",
683
687
  "topics": [
684
688
  "recursion",
685
689
  "transforming"
686
- ],
687
- "unlocked_by": null,
688
- "uuid": "942d0c4b-eaef-4576-b3f8-383757c53768"
690
+ ]
689
691
  },
690
692
  {
693
+ "slug": "binary-search-tree",
694
+ "uuid": "131206b1-8f1c-4906-9c31-7a077c6125be",
691
695
  "core": false,
696
+ "unlocked_by": null,
692
697
  "difficulty": 5,
693
- "slug": "binary-search-tree",
694
698
  "topics": [
695
699
  "searching",
696
700
  "trees"
697
- ],
698
- "unlocked_by": null,
699
- "uuid": "131206b1-8f1c-4906-9c31-7a077c6125be"
701
+ ]
700
702
  },
701
703
  {
704
+ "slug": "ocr-numbers",
705
+ "uuid": "bbe12b06-cc63-46cd-9379-4865bf9171eb",
702
706
  "core": false,
707
+ "unlocked_by": null,
703
708
  "difficulty": 5,
704
- "slug": "ocr-numbers",
705
709
  "topics": [
706
710
  "parsing",
707
711
  "pattern_recognition"
708
- ],
709
- "unlocked_by": null,
710
- "uuid": "bbe12b06-cc63-46cd-9379-4865bf9171eb"
712
+ ]
711
713
  },
712
714
  {
715
+ "slug": "linked-list",
716
+ "uuid": "ecedbfe8-b578-4af7-8e8c-470809adbc42",
713
717
  "core": false,
718
+ "unlocked_by": null,
714
719
  "difficulty": 5,
715
- "slug": "linked-list",
716
720
  "topics": [
717
721
  "lists"
718
- ],
719
- "unlocked_by": null,
720
- "uuid": "ecedbfe8-b578-4af7-8e8c-470809adbc42"
722
+ ]
721
723
  },
722
724
  {
725
+ "slug": "simple-cipher",
726
+ "uuid": "414351cd-580a-4608-b9ce-9003f3cdb242",
723
727
  "core": false,
728
+ "unlocked_by": null,
724
729
  "difficulty": 5,
725
- "slug": "simple-cipher",
726
730
  "topics": [
727
731
  "algorithms",
728
732
  "strings",
729
733
  "transforming"
730
- ],
731
- "unlocked_by": null,
732
- "uuid": "414351cd-580a-4608-b9ce-9003f3cdb242"
734
+ ]
733
735
  },
734
736
  {
737
+ "slug": "atbash-cipher",
738
+ "uuid": "c5adab05-2b19-4544-8abd-159af71196f5",
735
739
  "core": false,
740
+ "unlocked_by": null,
736
741
  "difficulty": 5,
737
- "slug": "atbash-cipher",
738
742
  "topics": [
739
743
  "algorithms",
740
744
  "strings",
741
745
  "transforming"
742
- ],
743
- "unlocked_by": null,
744
- "uuid": "c5adab05-2b19-4544-8abd-159af71196f5"
746
+ ]
745
747
  },
746
748
  {
749
+ "slug": "food-chain",
750
+ "uuid": "49f50818-3574-450e-9d57-6b23e62db5f8",
747
751
  "core": false,
752
+ "unlocked_by": null,
748
753
  "difficulty": 5,
749
- "slug": "food-chain",
750
754
  "topics": [
751
755
  "algorithms",
752
756
  "text_formatting"
753
- ],
754
- "unlocked_by": null,
755
- "uuid": "49f50818-3574-450e-9d57-6b23e62db5f8"
757
+ ]
756
758
  },
757
759
  {
760
+ "slug": "custom-set",
761
+ "uuid": "93731f15-38da-4e28-bfa0-6a3006a4f2c6",
758
762
  "core": false,
763
+ "unlocked_by": null,
759
764
  "difficulty": 5,
760
- "slug": "custom-set",
761
765
  "topics": [
762
766
  "sets"
763
- ],
764
- "unlocked_by": null,
765
- "uuid": "93731f15-38da-4e28-bfa0-6a3006a4f2c6"
767
+ ]
766
768
  },
767
769
  {
770
+ "slug": "crypto-square",
771
+ "uuid": "68f60053-41dc-4376-a0e2-bcb3b736aab3",
768
772
  "core": false,
773
+ "unlocked_by": null,
769
774
  "difficulty": 5,
770
- "slug": "crypto-square",
771
775
  "topics": [
772
776
  "algorithms",
773
777
  "strings",
774
778
  "transforming"
775
- ],
776
- "unlocked_by": null,
777
- "uuid": "68f60053-41dc-4376-a0e2-bcb3b736aab3"
779
+ ]
778
780
  },
779
781
  {
782
+ "slug": "luhn",
783
+ "uuid": "a7e26cf2-45b9-4b41-8143-a2b8e2104dec",
780
784
  "core": false,
785
+ "unlocked_by": null,
781
786
  "difficulty": 5,
782
- "slug": "luhn",
783
787
  "topics": [
784
788
  "algorithms",
785
789
  "strings",
786
790
  "transforming"
787
- ],
788
- "unlocked_by": null,
789
- "uuid": "a7e26cf2-45b9-4b41-8143-a2b8e2104dec"
791
+ ]
790
792
  },
791
793
  {
794
+ "slug": "run-length-encoding",
795
+ "uuid": "0718397c-b823-4b38-9892-69b667cf895f",
792
796
  "core": false,
797
+ "unlocked_by": null,
793
798
  "difficulty": 5,
794
- "slug": "run-length-encoding",
795
799
  "topics": [
796
800
  "algorithms",
797
801
  "transforming"
798
- ],
799
- "unlocked_by": null,
800
- "uuid": "0718397c-b823-4b38-9892-69b667cf895f"
802
+ ]
801
803
  },
802
804
  {
805
+ "slug": "tournament",
806
+ "uuid": "3a699a07-f0ab-4db2-bb0e-99aa968f1ad8",
803
807
  "core": false,
808
+ "unlocked_by": null,
804
809
  "difficulty": 6,
805
- "slug": "tournament",
806
810
  "topics": [
807
811
  "parsing",
808
812
  "text_formatting"
809
- ],
810
- "unlocked_by": null,
811
- "uuid": "3a699a07-f0ab-4db2-bb0e-99aa968f1ad8"
813
+ ]
812
814
  },
813
815
  {
816
+ "slug": "bowling",
817
+ "uuid": "beb0c7dd-69aa-4e9b-a0df-f1d507221b21",
814
818
  "core": false,
819
+ "unlocked_by": null,
815
820
  "difficulty": 6,
816
- "slug": "bowling",
817
821
  "topics": [
818
822
  "algorithms"
819
- ],
820
- "unlocked_by": null,
821
- "uuid": "beb0c7dd-69aa-4e9b-a0df-f1d507221b21"
823
+ ]
822
824
  },
823
825
  {
826
+ "slug": "nth-prime",
827
+ "uuid": "031f1ab5-5233-4d9b-8f55-0a662014a05c",
824
828
  "core": false,
829
+ "unlocked_by": null,
825
830
  "difficulty": 6,
826
- "slug": "nth-prime",
827
831
  "topics": [
828
832
  "mathematics"
829
- ],
830
- "unlocked_by": null,
831
- "uuid": "031f1ab5-5233-4d9b-8f55-0a662014a05c"
833
+ ]
832
834
  },
833
835
  {
836
+ "slug": "palindrome-products",
837
+ "uuid": "b96cace1-8666-4607-91e7-0203b4f7434f",
834
838
  "core": false,
839
+ "unlocked_by": null,
835
840
  "difficulty": 6,
836
- "slug": "palindrome-products",
837
841
  "topics": [
838
842
  "algorithms",
839
843
  "strings",
840
844
  "tuples"
841
- ],
842
- "unlocked_by": null,
843
- "uuid": "b96cace1-8666-4607-91e7-0203b4f7434f"
845
+ ]
844
846
  },
845
847
  {
848
+ "slug": "pig-latin",
849
+ "uuid": "5a9f6db4-7bee-4dda-a1ef-1d0bd1dad24e",
846
850
  "core": false,
851
+ "unlocked_by": null,
847
852
  "difficulty": 6,
848
- "slug": "pig-latin",
849
853
  "topics": [
850
854
  "strings",
851
855
  "transforming"
852
- ],
853
- "unlocked_by": null,
854
- "uuid": "5a9f6db4-7bee-4dda-a1ef-1d0bd1dad24e"
856
+ ]
855
857
  },
856
858
  {
859
+ "slug": "transpose",
860
+ "uuid": "a7074b04-3ac5-4437-817e-2dc31d9d8ae0",
857
861
  "core": false,
862
+ "unlocked_by": null,
858
863
  "difficulty": 6,
859
- "slug": "transpose",
860
864
  "topics": [
861
865
  "strings",
862
866
  "transforming"
863
- ],
864
- "unlocked_by": null,
865
- "uuid": "a7074b04-3ac5-4437-817e-2dc31d9d8ae0"
867
+ ]
866
868
  },
867
869
  {
870
+ "slug": "complex-numbers",
871
+ "uuid": "5a918ed8-e840-46b8-b824-291d872d2224",
868
872
  "core": false,
873
+ "unlocked_by": null,
869
874
  "difficulty": 6,
870
- "slug": "complex-numbers",
871
875
  "topics": [
872
876
  "mathematics",
873
877
  "tuples"
874
- ],
875
- "unlocked_by": null,
876
- "uuid": "5a918ed8-e840-46b8-b824-291d872d2224"
878
+ ]
877
879
  },
878
880
  {
881
+ "slug": "bracket-push",
882
+ "uuid": "b3924cce-02f7-4962-85a5-e67d8b1ac1fa",
879
883
  "core": false,
884
+ "unlocked_by": null,
880
885
  "difficulty": 7,
881
- "slug": "bracket-push",
882
886
  "topics": [
883
887
  "parsing",
884
888
  "strings"
885
- ],
886
- "unlocked_by": null,
887
- "uuid": "b3924cce-02f7-4962-85a5-e67d8b1ac1fa"
889
+ ]
888
890
  },
889
891
  {
892
+ "slug": "minesweeper",
893
+ "uuid": "ca6d49c7-e850-4e81-9540-582a1353f604",
890
894
  "core": false,
895
+ "unlocked_by": null,
891
896
  "difficulty": 7,
892
- "slug": "minesweeper",
893
897
  "topics": [
894
898
  "parsing",
895
899
  "transforming"
896
- ],
897
- "unlocked_by": null,
898
- "uuid": "ca6d49c7-e850-4e81-9540-582a1353f604"
900
+ ]
899
901
  },
900
902
  {
903
+ "slug": "dominoes",
904
+ "uuid": "68d71c7f-5259-4030-821f-8449a142b677",
901
905
  "core": false,
906
+ "unlocked_by": null,
902
907
  "difficulty": 7,
903
- "slug": "dominoes",
904
908
  "topics": [
905
909
  "lists",
906
910
  "tuples"
907
- ],
908
- "unlocked_by": null,
909
- "uuid": "68d71c7f-5259-4030-821f-8449a142b677"
911
+ ]
910
912
  },
911
913
  {
914
+ "slug": "wordy",
915
+ "uuid": "04b9825b-0ae2-4ee4-a444-12573f5d5c66",
912
916
  "core": false,
917
+ "unlocked_by": null,
913
918
  "difficulty": 7,
914
- "slug": "wordy",
915
919
  "topics": [
916
920
  "parsing",
917
921
  "strings",
918
922
  "transforming"
919
- ],
920
- "unlocked_by": null,
921
- "uuid": "04b9825b-0ae2-4ee4-a444-12573f5d5c66"
923
+ ]
922
924
  },
923
925
  {
926
+ "slug": "poker",
927
+ "uuid": "ffd130c2-f816-474c-a989-dc5814e31ea6",
924
928
  "core": false,
929
+ "unlocked_by": null,
925
930
  "difficulty": 8,
926
- "slug": "poker",
927
931
  "topics": [
928
932
  "discriminated_unions",
929
933
  "games",
930
934
  "parsing",
931
935
  "sorting"
932
- ],
933
- "unlocked_by": null,
934
- "uuid": "ffd130c2-f816-474c-a989-dc5814e31ea6"
936
+ ]
935
937
  },
936
938
  {
937
- "deprecated": true,
938
939
  "slug": "binary",
939
- "uuid": "0930d019-2ccb-48f9-9ee7-467b683d9901"
940
+ "uuid": "0930d019-2ccb-48f9-9ee7-467b683d9901",
941
+ "core": false,
942
+ "unlocked_by": null,
943
+ "difficulty": 0,
944
+ "topics": null,
945
+ "deprecated": true
940
946
  },
941
947
  {
942
- "deprecated": true,
943
948
  "slug": "trinary",
944
- "uuid": "8b376ef9-ad94-4623-8d0f-e2d7bb6c364a"
949
+ "uuid": "8b376ef9-ad94-4623-8d0f-e2d7bb6c364a",
950
+ "core": false,
951
+ "unlocked_by": null,
952
+ "difficulty": 0,
953
+ "topics": null,
954
+ "deprecated": true
945
955
  },
946
956
  {
947
- "deprecated": true,
948
957
  "slug": "octal",
949
- "uuid": "128bcbc1-18b3-45e7-9590-c71d8f57c5c1"
958
+ "uuid": "128bcbc1-18b3-45e7-9590-c71d8f57c5c1",
959
+ "core": false,
960
+ "unlocked_by": null,
961
+ "difficulty": 0,
962
+ "topics": null,
963
+ "deprecated": true
950
964
  },
951
965
  {
952
- "deprecated": true,
953
966
  "slug": "hexadecimal",
954
- "uuid": "3a9f0e4d-a569-40ea-adb8-ded8d240c949"
967
+ "uuid": "3a9f0e4d-a569-40ea-adb8-ded8d240c949",
968
+ "core": false,
969
+ "unlocked_by": null,
970
+ "difficulty": 0,
971
+ "topics": null,
972
+ "deprecated": true
955
973
  }
956
- ],
957
- "foregone": [],
958
- "language": "Swift"
974
+ ]
959
975
  }