trackler 2.2.1.159 → 2.2.1.160

Sign up to get free protection for your applications and to get access to all the features.
Files changed (293) hide show
  1. checksums.yaml +4 -4
  2. data/lib/trackler/version.rb +1 -1
  3. data/tracks/bash/config/maintainers.json +16 -15
  4. data/tracks/bash/config.json +111 -103
  5. data/tracks/c/config/maintainers.json +14 -14
  6. data/tracks/c/config.json +263 -242
  7. data/tracks/ceylon/config/maintainers.json +8 -8
  8. data/tracks/ceylon/config.json +30 -32
  9. data/tracks/cfml/config/maintainers.json +6 -4
  10. data/tracks/cfml/config.json +145 -92
  11. data/tracks/common-lisp/config/maintainers.json +26 -26
  12. data/tracks/common-lisp/config.json +152 -149
  13. data/tracks/cpp/config/maintainers.json +11 -11
  14. data/tracks/cpp/config.json +162 -161
  15. data/tracks/dart/config/maintainers.json +21 -17
  16. data/tracks/dart/config.json +57 -57
  17. data/tracks/delphi/config.json +1 -0
  18. data/tracks/delphi/docs/ABOUT.md +9 -6
  19. data/tracks/ecmascript/config/maintainers.json +11 -11
  20. data/tracks/ecmascript/config.json +563 -544
  21. data/tracks/ecmascript/exercises/accumulate/package.json +1 -1
  22. data/tracks/ecmascript/exercises/acronym/package.json +1 -1
  23. data/tracks/ecmascript/exercises/all-your-base/package.json +1 -1
  24. data/tracks/ecmascript/exercises/allergies/package.json +1 -1
  25. data/tracks/ecmascript/exercises/alphametics/package.json +1 -1
  26. data/tracks/ecmascript/exercises/anagram/package.json +1 -1
  27. data/tracks/ecmascript/exercises/armstrong-numbers/package.json +1 -1
  28. data/tracks/ecmascript/exercises/atbash-cipher/package.json +1 -1
  29. data/tracks/ecmascript/exercises/beer-song/package.json +1 -1
  30. data/tracks/ecmascript/exercises/binary/package.json +1 -1
  31. data/tracks/ecmascript/exercises/binary-search/package.json +1 -1
  32. data/tracks/ecmascript/exercises/binary-search-tree/package.json +1 -1
  33. data/tracks/ecmascript/exercises/bob/package.json +1 -1
  34. data/tracks/ecmascript/exercises/bowling/package.json +1 -1
  35. data/tracks/ecmascript/exercises/bracket-push/package.json +1 -1
  36. data/tracks/ecmascript/exercises/change/package.json +1 -1
  37. data/tracks/ecmascript/exercises/circular-buffer/package.json +1 -1
  38. data/tracks/ecmascript/exercises/clock/package.json +1 -1
  39. data/tracks/ecmascript/exercises/collatz-conjecture/package.json +1 -1
  40. data/tracks/ecmascript/exercises/complex-numbers/package.json +1 -1
  41. data/tracks/ecmascript/exercises/connect/package.json +1 -1
  42. data/tracks/ecmascript/exercises/crypto-square/package.json +1 -1
  43. data/tracks/ecmascript/exercises/custom-set/package.json +1 -1
  44. data/tracks/ecmascript/exercises/diamond/package.json +1 -1
  45. data/tracks/ecmascript/exercises/difference-of-squares/package.json +1 -1
  46. data/tracks/ecmascript/exercises/diffie-hellman/package.json +1 -1
  47. data/tracks/ecmascript/exercises/etl/package.json +1 -1
  48. data/tracks/ecmascript/exercises/flatten-array/package.json +1 -1
  49. data/tracks/ecmascript/exercises/food-chain/package.json +1 -1
  50. data/tracks/ecmascript/exercises/gigasecond/package.json +1 -1
  51. data/tracks/ecmascript/exercises/grade-school/package.json +1 -1
  52. data/tracks/ecmascript/exercises/grains/package.json +1 -1
  53. data/tracks/ecmascript/exercises/hamming/package.json +1 -1
  54. data/tracks/ecmascript/exercises/hello-world/package.json +1 -1
  55. data/tracks/ecmascript/exercises/hexadecimal/package.json +1 -1
  56. data/tracks/ecmascript/exercises/house/package.json +1 -1
  57. data/tracks/ecmascript/exercises/isbn-verifier/package.json +1 -1
  58. data/tracks/ecmascript/exercises/isogram/package.json +1 -1
  59. data/tracks/ecmascript/exercises/kindergarten-garden/package.json +1 -1
  60. data/tracks/ecmascript/exercises/largest-series-product/package.json +1 -1
  61. data/tracks/ecmascript/exercises/leap/package.json +1 -1
  62. data/tracks/ecmascript/exercises/linked-list/package.json +1 -1
  63. data/tracks/ecmascript/exercises/list-ops/package.json +1 -1
  64. data/tracks/ecmascript/exercises/luhn/package.json +1 -1
  65. data/tracks/ecmascript/exercises/matrix/package.json +1 -1
  66. data/tracks/ecmascript/exercises/meetup/package.json +1 -1
  67. data/tracks/ecmascript/exercises/minesweeper/package.json +1 -1
  68. data/tracks/ecmascript/exercises/nth-prime/package.json +1 -1
  69. data/tracks/ecmascript/exercises/nucleotide-count/package.json +1 -1
  70. data/tracks/ecmascript/exercises/ocr-numbers/package.json +1 -1
  71. data/tracks/ecmascript/exercises/octal/package.json +1 -1
  72. data/tracks/ecmascript/exercises/palindrome-products/package.json +1 -1
  73. data/tracks/ecmascript/exercises/pangram/package.json +1 -1
  74. data/tracks/ecmascript/exercises/pascals-triangle/package.json +1 -1
  75. data/tracks/ecmascript/exercises/perfect-numbers/package.json +1 -1
  76. data/tracks/ecmascript/exercises/phone-number/package.json +1 -1
  77. data/tracks/ecmascript/exercises/pig-latin/package.json +1 -1
  78. data/tracks/ecmascript/exercises/prime-factors/package.json +1 -1
  79. data/tracks/ecmascript/exercises/protein-translation/package.json +1 -1
  80. data/tracks/ecmascript/exercises/proverb/package.json +1 -1
  81. data/tracks/ecmascript/exercises/pythagorean-triplet/package.json +1 -1
  82. data/tracks/ecmascript/exercises/queen-attack/example.js +2 -2
  83. data/tracks/ecmascript/exercises/queen-attack/package.json +1 -1
  84. data/tracks/ecmascript/exercises/raindrops/package.json +1 -1
  85. data/tracks/ecmascript/exercises/react/package.json +1 -1
  86. data/tracks/ecmascript/exercises/rectangles/package.json +1 -1
  87. data/tracks/ecmascript/exercises/rna-transcription/package.json +1 -1
  88. data/tracks/ecmascript/exercises/robot-name/package.json +1 -1
  89. data/tracks/ecmascript/exercises/robot-simulator/package.json +1 -1
  90. data/tracks/ecmascript/exercises/roman-numerals/package.json +1 -1
  91. data/tracks/ecmascript/exercises/rotational-cipher/package.json +1 -1
  92. data/tracks/ecmascript/exercises/run-length-encoding/package.json +1 -1
  93. data/tracks/ecmascript/exercises/saddle-points/package.json +1 -1
  94. data/tracks/ecmascript/exercises/say/package.json +1 -1
  95. data/tracks/ecmascript/exercises/scrabble-score/package.json +1 -1
  96. data/tracks/ecmascript/exercises/secret-handshake/package.json +1 -1
  97. data/tracks/ecmascript/exercises/series/package.json +1 -1
  98. data/tracks/ecmascript/exercises/sieve/package.json +1 -1
  99. data/tracks/ecmascript/exercises/simple-cipher/package.json +1 -1
  100. data/tracks/ecmascript/exercises/simple-linked-list/package.json +1 -1
  101. data/tracks/ecmascript/exercises/space-age/package.json +1 -1
  102. data/tracks/ecmascript/exercises/spiral-matrix/package.json +1 -1
  103. data/tracks/ecmascript/exercises/strain/package.json +1 -1
  104. data/tracks/ecmascript/exercises/sublist/package.json +1 -1
  105. data/tracks/ecmascript/exercises/sum-of-multiples/package.json +1 -1
  106. data/tracks/ecmascript/exercises/transpose/package.json +1 -1
  107. data/tracks/ecmascript/exercises/triangle/package.json +1 -1
  108. data/tracks/ecmascript/exercises/trinary/package.json +1 -1
  109. data/tracks/ecmascript/exercises/twelve-days/package.json +1 -1
  110. data/tracks/ecmascript/exercises/two-bucket/package.json +1 -1
  111. data/tracks/ecmascript/exercises/two-fer/package.json +1 -1
  112. data/tracks/ecmascript/exercises/word-count/package.json +1 -1
  113. data/tracks/ecmascript/exercises/word-search/package.json +1 -1
  114. data/tracks/ecmascript/exercises/wordy/example.js +16 -4
  115. data/tracks/ecmascript/exercises/wordy/package.json +1 -1
  116. data/tracks/ecmascript/package.json +1 -1
  117. data/tracks/elisp/config/maintainers.json +6 -6
  118. data/tracks/elisp/config.json +103 -103
  119. data/tracks/elisp/exercises/two-fer/two-fer.el +3 -3
  120. data/tracks/elm/config/maintainers.json +11 -11
  121. data/tracks/elm/config.json +171 -171
  122. data/tracks/erlang/README.md +31 -28
  123. data/tracks/erlang/config/maintainers.json +13 -7
  124. data/tracks/erlang/config.json +99 -190
  125. data/tracks/factor/config/maintainers.json +5 -5
  126. data/tracks/factor/config.json +17 -19
  127. data/tracks/fsharp/config/maintainers.json +16 -16
  128. data/tracks/fsharp/config.json +485 -469
  129. data/tracks/gnu-apl/config/maintainers.json +6 -5
  130. data/tracks/gnu-apl/config.json +46 -20
  131. data/tracks/go/config/maintainers.json +43 -32
  132. data/tracks/go/config.json +475 -457
  133. data/tracks/haskell/config/maintainers.json +26 -15
  134. data/tracks/haskell/config.json +22 -2
  135. data/tracks/idris/config/maintainers.json +6 -6
  136. data/tracks/idris/config.json +24 -35
  137. data/tracks/java/config/maintainers.json +39 -29
  138. data/tracks/java/config.json +458 -433
  139. data/tracks/javascript/config/maintainers.json +40 -40
  140. data/tracks/javascript/config.json +577 -551
  141. data/tracks/javascript/docs/LEARNING.md +1 -1
  142. data/tracks/javascript/exercises/pangram/pangram.spec.js +15 -10
  143. data/tracks/julia/REQUIRE +1 -0
  144. data/tracks/julia/config/maintainers.json +5 -5
  145. data/tracks/julia/config.json +106 -108
  146. data/tracks/kotlin/config/maintainers.json +15 -15
  147. data/tracks/kotlin/config.json +273 -257
  148. data/tracks/kotlin/exercises/accumulate/build.gradle +1 -1
  149. data/tracks/kotlin/exercises/acronym/build.gradle +1 -1
  150. data/tracks/kotlin/exercises/all-your-base/build.gradle +1 -1
  151. data/tracks/kotlin/exercises/allergies/.meta/version +1 -1
  152. data/tracks/kotlin/exercises/allergies/build.gradle +1 -1
  153. data/tracks/kotlin/exercises/anagram/build.gradle +1 -1
  154. data/tracks/kotlin/exercises/atbash-cipher/build.gradle +1 -1
  155. data/tracks/kotlin/exercises/bank-account/build.gradle +17 -17
  156. data/tracks/kotlin/exercises/beer-song/.meta/version +1 -1
  157. data/tracks/kotlin/exercises/beer-song/build.gradle +1 -1
  158. data/tracks/kotlin/exercises/binary/build.gradle +1 -1
  159. data/tracks/kotlin/exercises/binary-search/build.gradle +1 -2
  160. data/tracks/kotlin/exercises/bob/build.gradle +1 -1
  161. data/tracks/kotlin/exercises/bracket-push/build.gradle +1 -1
  162. data/tracks/kotlin/exercises/change/.meta/version +1 -1
  163. data/tracks/kotlin/exercises/change/build.gradle +1 -2
  164. data/tracks/kotlin/exercises/clock/build.gradle +1 -1
  165. data/tracks/kotlin/exercises/collatz-conjecture/build.gradle +1 -1
  166. data/tracks/kotlin/exercises/complex-numbers/build.gradle +1 -1
  167. data/tracks/kotlin/exercises/diamond/build.gradle +1 -1
  168. data/tracks/kotlin/exercises/difference-of-squares/build.gradle +1 -1
  169. data/tracks/kotlin/exercises/etl/build.gradle +1 -1
  170. data/tracks/kotlin/exercises/flatten-array/build.gradle +1 -1
  171. data/tracks/kotlin/exercises/forth/build.gradle +1 -1
  172. data/tracks/kotlin/exercises/gigasecond/build.gradle +1 -1
  173. data/tracks/kotlin/exercises/grade-school/build.gradle +1 -1
  174. data/tracks/kotlin/exercises/grains/build.gradle +1 -1
  175. data/tracks/kotlin/exercises/hamming/build.gradle +1 -1
  176. data/tracks/kotlin/exercises/hello-world/build.gradle +1 -1
  177. data/tracks/kotlin/exercises/hexadecimal/build.gradle +1 -1
  178. data/tracks/kotlin/exercises/isogram/build.gradle +1 -1
  179. data/tracks/kotlin/exercises/largest-series-product/build.gradle +1 -1
  180. data/tracks/kotlin/exercises/leap/.meta/version +1 -1
  181. data/tracks/kotlin/exercises/leap/build.gradle +1 -1
  182. data/tracks/kotlin/exercises/linked-list/build.gradle +1 -1
  183. data/tracks/kotlin/exercises/list-ops/build.gradle +1 -1
  184. data/tracks/kotlin/exercises/luhn/build.gradle +1 -1
  185. data/tracks/kotlin/exercises/meetup/.meta/version +1 -1
  186. data/tracks/kotlin/exercises/meetup/build.gradle +1 -1
  187. data/tracks/kotlin/exercises/minesweeper/build.gradle +1 -1
  188. data/tracks/kotlin/exercises/nth-prime/build.gradle +1 -1
  189. data/tracks/kotlin/exercises/nucleotide-count/build.gradle +1 -1
  190. data/tracks/kotlin/exercises/pangram/build.gradle +1 -1
  191. data/tracks/kotlin/exercises/pascals-triangle/.meta/version +1 -1
  192. data/tracks/kotlin/exercises/pascals-triangle/build.gradle +1 -1
  193. data/tracks/kotlin/exercises/perfect-numbers/build.gradle +1 -1
  194. data/tracks/kotlin/exercises/phone-number/build.gradle +1 -1
  195. data/tracks/kotlin/exercises/pig-latin/build.gradle +1 -1
  196. data/tracks/kotlin/exercises/prime-factors/build.gradle +1 -1
  197. data/tracks/kotlin/exercises/raindrops/build.gradle +1 -1
  198. data/tracks/kotlin/exercises/react/build.gradle +1 -1
  199. data/tracks/kotlin/exercises/rna-transcription/build.gradle +1 -1
  200. data/tracks/kotlin/exercises/robot-name/build.gradle +1 -1
  201. data/tracks/kotlin/exercises/robot-simulator/build.gradle +1 -1
  202. data/tracks/kotlin/exercises/roman-numerals/build.gradle +1 -1
  203. data/tracks/kotlin/exercises/rotational-cipher/.meta/version +1 -1
  204. data/tracks/kotlin/exercises/rotational-cipher/build.gradle +1 -1
  205. data/tracks/kotlin/exercises/saddle-points/build.gradle +1 -1
  206. data/tracks/kotlin/exercises/say/.meta/version +1 -1
  207. data/tracks/kotlin/exercises/say/build.gradle +1 -1
  208. data/tracks/kotlin/exercises/scrabble-score/build.gradle +1 -1
  209. data/tracks/kotlin/exercises/secret-handshake/build.gradle +1 -1
  210. data/tracks/kotlin/exercises/series/build.gradle +1 -1
  211. data/tracks/kotlin/exercises/sieve/build.gradle +1 -1
  212. data/tracks/kotlin/exercises/simple-cipher/build.gradle +1 -1
  213. data/tracks/kotlin/exercises/space-age/build.gradle +1 -1
  214. data/tracks/kotlin/exercises/spiral-matrix/build.gradle +1 -1
  215. data/tracks/kotlin/exercises/strain/build.gradle +1 -1
  216. data/tracks/kotlin/exercises/sublist/.meta/version +1 -1
  217. data/tracks/kotlin/exercises/sublist/build.gradle +1 -1
  218. data/tracks/kotlin/exercises/sum-of-multiples/build.gradle +15 -16
  219. data/tracks/kotlin/exercises/triangle/build.gradle +15 -16
  220. data/tracks/kotlin/exercises/two-fer/build.gradle +1 -1
  221. data/tracks/kotlin/exercises/word-count/build.gradle +1 -1
  222. data/tracks/lfe/config/maintainers.json +6 -6
  223. data/tracks/lfe/config.json +128 -125
  224. data/tracks/lfe/docs/LEARNING.md +1 -1
  225. data/tracks/lua/config/maintainers.json +16 -16
  226. data/tracks/lua/config.json +331 -327
  227. data/tracks/mips/config/maintainers.json +5 -5
  228. data/tracks/mips/config.json +29 -59
  229. data/tracks/nim/config/maintainers.json +8 -8
  230. data/tracks/nim/config.json +185 -127
  231. data/tracks/nim/exercises/allergies/allergies_test.nim +7 -7
  232. data/tracks/nim/exercises/allergies/example.nim +2 -2
  233. data/tracks/nim/exercises/difference-of-squares/difference_of_squares_test.nim +4 -4
  234. data/tracks/nim/exercises/difference-of-squares/example.nim +3 -3
  235. data/tracks/nim/exercises/gigasecond/example.nim +1 -1
  236. data/tracks/nim/exercises/gigasecond/gigasecond_test.nim +5 -5
  237. data/tracks/nim/exercises/nucleotide-count/example.nim +1 -1
  238. data/tracks/nim/exercises/nucleotide-count/nucleotide_count_test.nim +6 -6
  239. data/tracks/nim/exercises/pangram/example.nim +1 -1
  240. data/tracks/nim/exercises/pangram/pangram_test.nim +11 -11
  241. data/tracks/nim/exercises/triangle/example.nim +4 -4
  242. data/tracks/nim/exercises/triangle/triangle_test.nim +14 -14
  243. data/tracks/nim/exercises/word-count/HINT.md +8 -0
  244. data/tracks/nim/exercises/word-count/example.nim +8 -15
  245. data/tracks/nim/exercises/word-count/word_count_test.nim +63 -55
  246. data/tracks/perl6/Dockerfile +1 -1
  247. data/tracks/perl6/config/maintainers.json +8 -8
  248. data/tracks/perl6/config.json +72 -127
  249. data/tracks/powershell/.gitignore +2 -1
  250. data/tracks/powershell/config/maintainers.json +8 -8
  251. data/tracks/powershell/config.json +54 -37
  252. data/tracks/powershell/exercises/reverse-string/.version +1 -0
  253. data/tracks/powershell/exercises/reverse-string/README.md +13 -0
  254. data/tracks/powershell/exercises/reverse-string/ReverseString.example.ps1 +21 -0
  255. data/tracks/powershell/exercises/reverse-string/ReverseString.ps1 +9 -0
  256. data/tracks/powershell/exercises/reverse-string/ReverseString.tests.ps1 +21 -0
  257. data/tracks/powershell/exercises/sum-of-multiples/.version +1 -0
  258. data/tracks/powershell/exercises/sum-of-multiples/README.md +15 -0
  259. data/tracks/powershell/exercises/sum-of-multiples/SumOfMultiples.example.ps1 +20 -0
  260. data/tracks/powershell/exercises/sum-of-multiples/SumOfMultiples.ps1 +9 -0
  261. data/tracks/powershell/exercises/sum-of-multiples/SumOfMultiples.tests.ps1 +29 -0
  262. data/tracks/python/config/maintainers.json +17 -17
  263. data/tracks/python/config.json +331 -283
  264. data/tracks/python/exercises/diffie-hellman/diffie_hellman_test.py +16 -47
  265. data/tracks/r/config/maintainers.json +16 -16
  266. data/tracks/r/config.json +128 -117
  267. data/tracks/racket/config/maintainers.json +16 -16
  268. data/tracks/racket/config.json +106 -102
  269. data/tracks/reasonml/config/maintainers.json +1 -1
  270. data/tracks/reasonml/config.json +37 -23
  271. data/tracks/reasonml/exercises/bob/README.md +29 -0
  272. data/tracks/reasonml/exercises/bob/__tests__/Bob_test.re +103 -0
  273. data/tracks/reasonml/exercises/bob/bsconfig.json +30 -0
  274. data/tracks/reasonml/exercises/bob/package-lock.json +5855 -0
  275. data/tracks/reasonml/exercises/bob/package.json +20 -0
  276. data/tracks/reasonml/exercises/bob/src/Example.re +41 -0
  277. data/tracks/reasonml/exercises/hello-world/src/{HelloWorld.re → Example.re} +0 -0
  278. data/tracks/reasonml/exercises/leap/src/{Leap.re → Example.re} +0 -0
  279. data/tracks/reasonml/exercises/rna-transcription/__tests__/RnaTranscription_test.re +24 -0
  280. data/tracks/reasonml/exercises/rna-transcription/bsconfig.json +30 -0
  281. data/tracks/reasonml/exercises/rna-transcription/package.json +20 -0
  282. data/tracks/reasonml/exercises/rna-transcription/src/Example.re +14 -0
  283. data/tracks/reasonml/exercises/space-age/src/{Space_age.re → Example.re} +0 -0
  284. data/tracks/scala/config/maintainers.json +22 -10
  285. data/tracks/scala/config.json +362 -350
  286. data/tracks/scala/docs/ABOUT.md +7 -2
  287. data/tracks/scheme/config/maintainers.json +11 -11
  288. data/tracks/scheme/config.json +72 -72
  289. data/tracks/typescript/config/maintainers.json +15 -15
  290. data/tracks/typescript/config.json +382 -362
  291. data/tracks/vimscript/config/maintainers.json +11 -11
  292. data/tracks/vimscript/config.json +41 -89
  293. metadata +27 -5
@@ -1,218 +1,222 @@
1
1
  {
2
+ "language": "Go",
2
3
  "active": true,
3
4
  "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)",
4
6
  "exercises": [
5
7
  {
8
+ "slug": "gigasecond",
9
+ "uuid": "ea390e58-6ac5-4219-89bb-648852712a6a",
6
10
  "core": false,
11
+ "unlocked_by": null,
7
12
  "difficulty": 1,
8
- "slug": "gigasecond",
9
13
  "topics": [
10
14
  "time"
11
- ],
12
- "unlocked_by": null,
13
- "uuid": "ea390e58-6ac5-4219-89bb-648852712a6a"
15
+ ]
14
16
  },
15
17
  {
18
+ "slug": "bob",
19
+ "uuid": "efdf07a1-e329-4d0f-90a1-374b9b8af748",
16
20
  "core": false,
21
+ "unlocked_by": null,
17
22
  "difficulty": 2,
18
- "slug": "bob",
19
23
  "topics": [
20
24
  "conditionals",
21
25
  "strings"
22
- ],
23
- "unlocked_by": null,
24
- "uuid": "efdf07a1-e329-4d0f-90a1-374b9b8af748"
26
+ ]
25
27
  },
26
28
  {
29
+ "slug": "acronym",
30
+ "uuid": "b39d9e79-dee0-4c70-a6c3-114bee8083f2",
27
31
  "core": false,
32
+ "unlocked_by": null,
28
33
  "difficulty": 3,
29
- "slug": "acronym",
30
34
  "topics": [
31
35
  "regular_expressions",
32
36
  "strings",
33
37
  "transforming"
34
- ],
35
- "unlocked_by": null,
36
- "uuid": "b39d9e79-dee0-4c70-a6c3-114bee8083f2"
38
+ ]
37
39
  },
38
40
  {
41
+ "slug": "hello-world",
42
+ "uuid": "19957346-dedf-441e-85ea-656cac0d96d8",
39
43
  "core": true,
44
+ "unlocked_by": null,
40
45
  "difficulty": 1,
41
- "slug": "hello-world",
42
46
  "topics": [
43
47
  "strings"
44
- ],
45
- "unlocked_by": null,
46
- "uuid": "19957346-dedf-441e-85ea-656cac0d96d8"
48
+ ]
47
49
  },
48
50
  {
51
+ "slug": "space-age",
52
+ "uuid": "5a6baa1c-8ca8-4ebe-a1d2-1e0687ca846a",
49
53
  "core": false,
54
+ "unlocked_by": "hello-world",
50
55
  "difficulty": 2,
51
- "slug": "space-age",
52
56
  "topics": [
53
57
  "floating_point_numbers",
54
58
  "if_else_statements",
55
59
  "mathematics"
56
- ],
57
- "unlocked_by": "hello-world",
58
- "uuid": "5a6baa1c-8ca8-4ebe-a1d2-1e0687ca846a"
60
+ ]
59
61
  },
60
62
  {
63
+ "slug": "two-fer",
64
+ "uuid": "08a6c476-9ffe-4ae3-9996-cd299cc82fca",
61
65
  "core": true,
66
+ "unlocked_by": null,
62
67
  "difficulty": 1,
63
- "slug": "two-fer",
64
68
  "topics": [
65
69
  "conditionals",
66
70
  "strings"
67
- ],
68
- "unlocked_by": null,
69
- "uuid": "08a6c476-9ffe-4ae3-9996-cd299cc82fca"
71
+ ]
70
72
  },
71
73
  {
74
+ "slug": "hamming",
75
+ "uuid": "52582415-8f7f-4ac5-857f-5c160ec48134",
72
76
  "core": true,
77
+ "unlocked_by": null,
73
78
  "difficulty": 1,
74
- "slug": "hamming",
75
79
  "topics": [
76
80
  "equality",
77
81
  "loops",
78
82
  "strings"
79
- ],
80
- "unlocked_by": null,
81
- "uuid": "52582415-8f7f-4ac5-857f-5c160ec48134"
83
+ ]
82
84
  },
83
85
  {
86
+ "slug": "raindrops",
87
+ "uuid": "2f51e32a-9b1f-4100-9eec-517115c858e9",
84
88
  "core": true,
89
+ "unlocked_by": null,
85
90
  "difficulty": 1,
86
- "slug": "raindrops",
87
91
  "topics": [
88
92
  "conditionals",
89
93
  "filtering",
90
94
  "strings"
91
- ],
92
- "unlocked_by": null,
93
- "uuid": "2f51e32a-9b1f-4100-9eec-517115c858e9"
95
+ ]
94
96
  },
95
97
  {
98
+ "slug": "scrabble-score",
99
+ "uuid": "20cbd8f9-f8e3-4767-a0f5-94810ba3f902",
96
100
  "core": true,
101
+ "unlocked_by": null,
97
102
  "difficulty": 1,
98
- "slug": "scrabble-score",
99
103
  "topics": [
100
104
  "loops",
101
105
  "maps",
102
106
  "strings"
103
- ],
104
- "unlocked_by": null,
105
- "uuid": "20cbd8f9-f8e3-4767-a0f5-94810ba3f902"
107
+ ]
106
108
  },
107
109
  {
110
+ "slug": "isogram",
111
+ "uuid": "c2064df8-cce5-4f03-9d85-0818b4e34112",
108
112
  "core": true,
113
+ "unlocked_by": null,
109
114
  "difficulty": 2,
110
- "slug": "isogram",
111
115
  "topics": [
112
116
  "sequences",
113
117
  "strings"
114
- ],
115
- "unlocked_by": null,
116
- "uuid": "c2064df8-cce5-4f03-9d85-0818b4e34112"
118
+ ]
117
119
  },
118
120
  {
121
+ "slug": "reverse-string",
122
+ "uuid": "e2df2756-7a48-4b45-b601-91be91027dbd",
119
123
  "core": false,
124
+ "unlocked_by": "isogram",
120
125
  "difficulty": 2,
121
- "slug": "reverse-string",
122
126
  "topics": [
123
127
  "sequences",
124
128
  "strings"
125
- ],
126
- "unlocked_by": "isogram",
127
- "uuid": "e2df2756-7a48-4b45-b601-91be91027dbd"
129
+ ]
128
130
  },
129
131
  {
132
+ "slug": "difference-of-squares",
133
+ "uuid": "19628c8a-a89f-457e-9526-3d400024a927",
130
134
  "core": true,
135
+ "unlocked_by": null,
131
136
  "difficulty": 2,
132
- "slug": "difference-of-squares",
133
137
  "topics": [
134
138
  "algorithms",
135
139
  "mathematics"
136
- ],
137
- "unlocked_by": null,
138
- "uuid": "19628c8a-a89f-457e-9526-3d400024a927"
140
+ ]
139
141
  },
140
142
  {
143
+ "slug": "luhn",
144
+ "uuid": "8b29da0e-8ead-4e72-a12a-d448c8434767",
141
145
  "core": true,
146
+ "unlocked_by": null,
142
147
  "difficulty": 2,
143
- "slug": "luhn",
144
148
  "topics": [
145
149
  "algorithms",
146
150
  "integers",
147
151
  "strings"
148
- ],
149
- "unlocked_by": null,
150
- "uuid": "8b29da0e-8ead-4e72-a12a-d448c8434767"
152
+ ]
151
153
  },
152
- {
154
+ {
155
+ "slug": "grains",
156
+ "uuid": "b4f6b08b-a132-447b-b447-66bf37ab20c6",
153
157
  "core": true,
158
+ "unlocked_by": null,
154
159
  "difficulty": 2,
155
- "slug": "grains",
156
160
  "topics": [
157
161
  "bitwise_operations",
158
162
  "if_else_statements",
159
163
  "integers",
160
164
  "mathematics",
161
165
  "type_conversion"
162
- ],
163
- "unlocked_by": null,
164
- "uuid": "b4f6b08b-a132-447b-b447-66bf37ab20c6"
166
+ ]
165
167
  },
166
168
  {
169
+ "slug": "clock",
170
+ "uuid": "7d2de21e-bf67-495e-8d90-05e1a35d5b99",
167
171
  "core": true,
172
+ "unlocked_by": null,
168
173
  "difficulty": 3,
169
- "slug": "clock",
170
174
  "topics": [
171
175
  "equality",
172
176
  "mathematics",
173
177
  "text_formatting",
174
178
  "time"
175
- ],
176
- "unlocked_by": null,
177
- "uuid": "7d2de21e-bf67-495e-8d90-05e1a35d5b99"
179
+ ]
178
180
  },
179
181
  {
182
+ "slug": "parallel-letter-frequency",
183
+ "uuid": "bf366b19-63bf-4a75-9a35-08b881af6951",
180
184
  "core": true,
185
+ "unlocked_by": null,
181
186
  "difficulty": 3,
182
- "slug": "parallel-letter-frequency",
183
187
  "topics": [
184
188
  "concurrency"
185
- ],
186
- "unlocked_by": null,
187
- "uuid": "bf366b19-63bf-4a75-9a35-08b881af6951"
189
+ ]
188
190
  },
189
191
  {
192
+ "slug": "tree-building",
193
+ "uuid": "d0a2afab-e30d-4617-b646-413a44ecf2ed",
190
194
  "core": true,
195
+ "unlocked_by": null,
191
196
  "difficulty": 3,
192
- "slug": "tree-building",
193
197
  "topics": [
194
198
  "records",
195
199
  "refactoring",
196
200
  "sorting",
197
201
  "trees"
198
- ],
199
- "unlocked_by": null,
200
- "uuid": "d0a2afab-e30d-4617-b646-413a44ecf2ed"
202
+ ]
201
203
  },
202
204
  {
205
+ "slug": "robot-name",
206
+ "uuid": "86b8f1e6-e088-403e-984a-abd360f5dcef",
203
207
  "core": true,
208
+ "unlocked_by": null,
204
209
  "difficulty": 3,
205
- "slug": "robot-name",
206
210
  "topics": [
207
211
  "randomness"
208
- ],
209
- "unlocked_by": null,
210
- "uuid": "86b8f1e6-e088-403e-984a-abd360f5dcef"
212
+ ]
211
213
  },
212
214
  {
215
+ "slug": "tournament",
216
+ "uuid": "572d03ec-d763-400e-ba4f-5a6a92d5af98",
213
217
  "core": true,
218
+ "unlocked_by": null,
214
219
  "difficulty": 3,
215
- "slug": "tournament",
216
220
  "topics": [
217
221
  "integers",
218
222
  "parsing",
@@ -221,304 +225,302 @@
221
225
  "strings",
222
226
  "text_formatting",
223
227
  "transforming"
224
- ],
225
- "unlocked_by": null,
226
- "uuid": "572d03ec-d763-400e-ba4f-5a6a92d5af98"
228
+ ]
227
229
  },
228
230
  {
231
+ "slug": "twelve-days",
232
+ "uuid": "75b6e2e8-1e20-4f53-b7c5-e32f9f7eea58",
229
233
  "core": true,
234
+ "unlocked_by": null,
230
235
  "difficulty": 4,
231
- "slug": "twelve-days",
232
236
  "topics": [
233
237
  "algorithms",
234
238
  "pattern_recognition",
235
239
  "sequences",
236
240
  "strings",
237
241
  "text_formatting"
238
- ],
239
- "unlocked_by": null,
240
- "uuid": "75b6e2e8-1e20-4f53-b7c5-e32f9f7eea58"
242
+ ]
241
243
  },
242
244
  {
245
+ "slug": "matrix",
246
+ "uuid": "62aa3d20-65d8-440f-9d08-48bbc823f4fe",
243
247
  "core": true,
248
+ "unlocked_by": null,
244
249
  "difficulty": 4,
245
- "slug": "matrix",
246
250
  "topics": [
247
251
  "arrays",
248
252
  "exception_handling",
249
253
  "matrices",
250
254
  "strings",
251
255
  "type_conversion"
252
- ],
253
- "unlocked_by": null,
254
- "uuid": "62aa3d20-65d8-440f-9d08-48bbc823f4fe"
256
+ ]
255
257
  },
256
258
  {
259
+ "slug": "sublist",
260
+ "uuid": "4174c0c6-cb8a-474c-9327-737b7a86326e",
257
261
  "core": false,
262
+ "unlocked_by": "matrix",
258
263
  "difficulty": 3,
259
- "slug": "sublist",
260
264
  "topics": [
261
265
  "arrays",
262
- "control-flow (loops)"
263
- ],
264
- "unlocked_by": "matrix",
265
- "uuid": "4174c0c6-cb8a-474c-9327-737b7a86326e"
266
+ "control_flow_loops"
267
+ ]
266
268
  },
267
269
  {
270
+ "slug": "error-handling",
271
+ "uuid": "cd05b63b-df20-4c8d-8743-53033acf7696",
268
272
  "core": true,
273
+ "unlocked_by": null,
269
274
  "difficulty": 5,
270
- "slug": "error-handling",
271
275
  "topics": [
272
276
  "exception_handling"
273
- ],
274
- "unlocked_by": null,
275
- "uuid": "cd05b63b-df20-4c8d-8743-53033acf7696"
277
+ ]
276
278
  },
277
279
  {
280
+ "slug": "flatten-array",
281
+ "uuid": "40cc79a6-a6ea-45a0-944e-b4f3baabebc2",
278
282
  "core": false,
283
+ "unlocked_by": "error-handling",
279
284
  "difficulty": 3,
280
- "slug": "flatten-array",
281
285
  "topics": [
282
286
  "arrays",
283
287
  "recursion"
284
- ],
285
- "unlocked_by": "error-handling",
286
- "uuid": "40cc79a6-a6ea-45a0-944e-b4f3baabebc2"
288
+ ]
287
289
  },
288
290
  {
291
+ "slug": "bank-account",
292
+ "uuid": "7cb6c78e-44e9-499b-a745-3ecb73bea3ab",
289
293
  "core": true,
294
+ "unlocked_by": null,
290
295
  "difficulty": 4,
291
- "slug": "bank-account",
292
296
  "topics": [
293
297
  "concurrency",
294
298
  "integers"
295
- ],
296
- "unlocked_by": null,
297
- "uuid": "7cb6c78e-44e9-499b-a745-3ecb73bea3ab"
299
+ ]
298
300
  },
299
301
  {
302
+ "slug": "paasio",
303
+ "uuid": "5dbec590-7a50-4398-987b-7252734216a2",
300
304
  "core": false,
305
+ "unlocked_by": "bank-account",
301
306
  "difficulty": 5,
302
- "slug": "paasio",
303
307
  "topics": [
304
308
  "concurrency",
305
309
  "interfaces",
306
310
  "networking"
307
- ],
308
- "unlocked_by": "bank-account",
309
- "uuid": "5dbec590-7a50-4398-987b-7252734216a2"
311
+ ]
310
312
  },
311
313
  {
314
+ "slug": "leap",
315
+ "uuid": "fee57b09-2b67-4483-a2e5-3dfec0568b15",
312
316
  "core": false,
317
+ "unlocked_by": "two-fer",
313
318
  "difficulty": 1,
314
- "slug": "leap",
315
319
  "topics": [
316
320
  "booleans",
317
321
  "conditionals",
318
322
  "integers",
319
323
  "logic"
320
- ],
321
- "unlocked_by": "two-fer",
322
- "uuid": "fee57b09-2b67-4483-a2e5-3dfec0568b15"
324
+ ]
323
325
  },
324
326
  {
327
+ "slug": "accumulate",
328
+ "uuid": "fb03948c-11e8-440d-9a5d-979396451270",
325
329
  "core": false,
330
+ "unlocked_by": "raindrops",
326
331
  "difficulty": 1,
327
- "slug": "accumulate",
328
332
  "topics": [
329
333
  "lists"
330
- ],
331
- "unlocked_by": "raindrops",
332
- "uuid": "fb03948c-11e8-440d-9a5d-979396451270"
334
+ ]
333
335
  },
334
336
  {
337
+ "slug": "triangle",
338
+ "uuid": "6769557a-33fa-4257-adbf-e66dc8c06f85",
335
339
  "core": false,
340
+ "unlocked_by": "two-fer",
336
341
  "difficulty": 3,
337
- "slug": "triangle",
338
342
  "topics": [
339
343
  "booleans",
340
344
  "conditionals",
341
345
  "logic"
342
- ],
343
- "unlocked_by": "two-fer",
344
- "uuid": "6769557a-33fa-4257-adbf-e66dc8c06f85"
346
+ ]
345
347
  },
346
348
  {
349
+ "slug": "secret-handshake",
350
+ "uuid": "9a1870e0-dce7-496e-9521-2f2b606ac6c5",
347
351
  "core": false,
352
+ "unlocked_by": "grains",
348
353
  "difficulty": 5,
349
- "slug": "secret-handshake",
350
354
  "topics": [
351
355
  "arrays",
352
356
  "bitwise_operations",
353
357
  "integers"
354
- ],
355
- "unlocked_by": "grains",
356
- "uuid": "9a1870e0-dce7-496e-9521-2f2b606ac6c5"
358
+ ]
357
359
  },
358
360
  {
361
+ "slug": "house",
362
+ "uuid": "11008fb0-4ef9-4aff-befb-c56f4084f96e",
359
363
  "core": false,
364
+ "unlocked_by": "twelve-days",
360
365
  "difficulty": 4,
361
- "slug": "house",
362
366
  "topics": [
363
367
  "recursion",
364
368
  "strings",
365
369
  "text_formatting"
366
- ],
367
- "unlocked_by": "twelve-days",
368
- "uuid": "11008fb0-4ef9-4aff-befb-c56f4084f96e"
370
+ ]
369
371
  },
370
372
  {
373
+ "slug": "pascals-triangle",
374
+ "uuid": "92e2a192-5ee9-422a-8699-c231a7136b10",
371
375
  "core": false,
376
+ "unlocked_by": "tournament",
372
377
  "difficulty": 4,
373
- "slug": "pascals-triangle",
374
378
  "topics": [
375
379
  "algorithms",
376
380
  "arrays",
377
381
  "mathematics",
378
382
  "recursion"
379
- ],
380
- "unlocked_by": "tournament",
381
- "uuid": "92e2a192-5ee9-422a-8699-c231a7136b10"
383
+ ]
382
384
  },
383
385
  {
386
+ "slug": "series",
387
+ "uuid": "2c5fb577-a9ce-4c4c-8fc8-fffb38d020d6",
384
388
  "core": false,
389
+ "unlocked_by": "parallel-letter-frequency",
385
390
  "difficulty": 3,
386
- "slug": "series",
387
391
  "topics": [
388
392
  "arrays",
389
393
  "refactoring",
390
394
  "strings"
391
- ],
392
- "unlocked_by": "parallel-letter-frequency",
393
- "uuid": "2c5fb577-a9ce-4c4c-8fc8-fffb38d020d6"
395
+ ]
394
396
  },
395
397
  {
398
+ "slug": "queen-attack",
399
+ "uuid": "95f49a88-6f01-4905-a8b1-a3fcec1f535a",
396
400
  "core": false,
401
+ "unlocked_by": "matrix",
397
402
  "difficulty": 5,
398
- "slug": "queen-attack",
399
403
  "topics": [
400
404
  "booleans",
401
405
  "errors",
402
406
  "games",
403
407
  "logic",
404
408
  "mathematics"
405
- ],
406
- "unlocked_by": "matrix",
407
- "uuid": "95f49a88-6f01-4905-a8b1-a3fcec1f535a"
409
+ ]
408
410
  },
409
411
  {
412
+ "slug": "etl",
413
+ "uuid": "73da448c-33b7-4565-ab48-1de5020d65ab",
410
414
  "core": false,
415
+ "unlocked_by": "scrabble-score",
411
416
  "difficulty": 1,
412
- "slug": "etl",
413
417
  "topics": [
414
418
  "loops",
415
419
  "maps",
416
420
  "transforming"
417
- ],
418
- "unlocked_by": "scrabble-score",
419
- "uuid": "73da448c-33b7-4565-ab48-1de5020d65ab"
421
+ ]
420
422
  },
421
423
  {
424
+ "slug": "sum-of-multiples",
425
+ "uuid": "f0c25fde-960e-4161-a642-4414925b4d0a",
422
426
  "core": false,
427
+ "unlocked_by": "difference-of-squares",
423
428
  "difficulty": 5,
424
- "slug": "sum-of-multiples",
425
429
  "topics": [
426
430
  "loops",
427
431
  "mathematics"
428
- ],
429
- "unlocked_by": "difference-of-squares",
430
- "uuid": "f0c25fde-960e-4161-a642-4414925b4d0a"
432
+ ]
431
433
  },
432
434
  {
435
+ "slug": "pythagorean-triplet",
436
+ "uuid": "6c919eab-7c63-444a-a485-db74d51c3430",
433
437
  "core": false,
438
+ "unlocked_by": "difference-of-squares",
434
439
  "difficulty": 5,
435
- "slug": "pythagorean-triplet",
436
440
  "topics": [
437
441
  "algorithms",
438
442
  "mathematics"
439
- ],
440
- "unlocked_by": "difference-of-squares",
441
- "uuid": "6c919eab-7c63-444a-a485-db74d51c3430"
443
+ ]
442
444
  },
443
445
  {
446
+ "slug": "pangram",
447
+ "uuid": "d14c6283-e57c-472c-8181-87f82d9088dd",
444
448
  "core": false,
449
+ "unlocked_by": "isogram",
445
450
  "difficulty": 2,
446
- "slug": "pangram",
447
451
  "topics": [
448
452
  "loops",
449
453
  "strings"
450
- ],
451
- "unlocked_by": "isogram",
452
- "uuid": "d14c6283-e57c-472c-8181-87f82d9088dd"
454
+ ]
453
455
  },
454
456
  {
457
+ "slug": "crypto-square",
458
+ "uuid": "a1c065d9-6971-4286-8413-c944e2dddefa",
455
459
  "core": false,
460
+ "unlocked_by": "luhn",
456
461
  "difficulty": 3,
457
- "slug": "crypto-square",
458
462
  "topics": [
459
463
  "cryptography",
460
464
  "filtering",
461
465
  "strings",
462
466
  "text_formatting",
463
467
  "transforming"
464
- ],
465
- "unlocked_by": "luhn",
466
- "uuid": "a1c065d9-6971-4286-8413-c944e2dddefa"
468
+ ]
467
469
  },
468
470
  {
471
+ "slug": "food-chain",
472
+ "uuid": "12a16ab5-35fc-4fb2-a018-504953f3ad80",
469
473
  "core": false,
474
+ "unlocked_by": "twelve-days",
470
475
  "difficulty": 4,
471
- "slug": "food-chain",
472
476
  "topics": [
473
477
  "conditionals",
474
478
  "loops",
475
479
  "recursion",
476
480
  "strings",
477
481
  "text_formatting"
478
- ],
479
- "unlocked_by": "twelve-days",
480
- "uuid": "12a16ab5-35fc-4fb2-a018-504953f3ad80"
482
+ ]
481
483
  },
482
484
  {
485
+ "slug": "largest-series-product",
486
+ "uuid": "8ec72d61-d830-48cf-819d-cd4faf0cf67d",
483
487
  "core": false,
488
+ "unlocked_by": "difference-of-squares",
484
489
  "difficulty": 3,
485
- "slug": "largest-series-product",
486
490
  "topics": [
487
491
  "algorithms",
488
492
  "integers",
489
493
  "sequences"
490
- ],
491
- "unlocked_by": "difference-of-squares",
492
- "uuid": "8ec72d61-d830-48cf-819d-cd4faf0cf67d"
494
+ ]
493
495
  },
494
496
  {
497
+ "slug": "sieve",
498
+ "uuid": "c3469a26-b133-43b4-ab7d-32ea04fa5ce4",
495
499
  "core": false,
500
+ "unlocked_by": "grains",
496
501
  "difficulty": 3,
497
- "slug": "sieve",
498
502
  "topics": [
499
503
  "algorithms",
500
504
  "integers",
501
505
  "loops",
502
506
  "mathematics",
503
507
  "sorting"
504
- ],
505
- "unlocked_by": "grains",
506
- "uuid": "c3469a26-b133-43b4-ab7d-32ea04fa5ce4"
508
+ ]
507
509
  },
508
510
  {
511
+ "slug": "palindrome-products",
512
+ "uuid": "10f091b1-deda-4fec-8e3c-9dabb080d473",
509
513
  "core": false,
514
+ "unlocked_by": "robot-name",
510
515
  "difficulty": 6,
511
- "slug": "palindrome-products",
512
516
  "topics": [
513
517
  "algorithms",
514
518
  "mathematics"
515
- ],
516
- "unlocked_by": "robot-name",
517
- "uuid": "10f091b1-deda-4fec-8e3c-9dabb080d473"
519
+ ]
518
520
  },
519
521
  {
520
- "uuid": "478d8d31-454d-4a8a-af01-96864186d5f2",
521
522
  "slug": "scale-generator",
523
+ "uuid": "478d8d31-454d-4a8a-af01-96864186d5f2",
522
524
  "core": false,
523
525
  "unlocked_by": null,
524
526
  "difficulty": 3,
@@ -528,80 +530,82 @@
528
530
  ]
529
531
  },
530
532
  {
533
+ "slug": "protein-translation",
534
+ "uuid": "0b9e07de-c8e4-4d28-b589-897a7ef8062a",
531
535
  "core": false,
536
+ "unlocked_by": "scrabble-score",
532
537
  "difficulty": 3,
533
- "slug": "protein-translation",
534
538
  "topics": [
535
539
  "filtering",
536
540
  "maps",
537
541
  "sequences"
538
- ],
539
- "unlocked_by": "scrabble-score",
540
- "uuid": "0b9e07de-c8e4-4d28-b589-897a7ef8062a"
542
+ ]
541
543
  },
542
544
  {
545
+ "slug": "perfect-numbers",
546
+ "uuid": "362f93ab-51e8-4d6a-bd2f-b46432843eb9",
543
547
  "core": false,
548
+ "unlocked_by": "grains",
544
549
  "difficulty": 4,
545
- "slug": "perfect-numbers",
546
550
  "topics": [
547
551
  "algorithms",
548
552
  "filtering",
549
553
  "integers",
550
554
  "mathematics"
551
- ],
552
- "unlocked_by": "grains",
553
- "uuid": "362f93ab-51e8-4d6a-bd2f-b46432843eb9"
555
+ ]
554
556
  },
555
557
  {
558
+ "slug": "bracket-push",
559
+ "uuid": "6c2499f7-d42c-4d0f-9680-f5f7650023ff",
556
560
  "core": false,
561
+ "unlocked_by": "tree-building",
557
562
  "difficulty": 7,
558
- "slug": "bracket-push",
559
563
  "topics": [
560
564
  "parsing",
561
565
  "strings"
562
- ],
563
- "unlocked_by": "tree-building",
564
- "uuid": "6c2499f7-d42c-4d0f-9680-f5f7650023ff"
566
+ ]
565
567
  },
566
568
  {
569
+ "slug": "anagram",
570
+ "uuid": "f1db7190-a53d-411d-b538-8dc3f75ddc32",
567
571
  "core": false,
572
+ "unlocked_by": "isogram",
568
573
  "difficulty": 3,
569
- "slug": "anagram",
570
574
  "topics": [
571
575
  "filtering",
572
576
  "parsing",
573
577
  "sorting",
574
578
  "strings"
575
- ],
576
- "unlocked_by": "isogram",
577
- "uuid": "f1db7190-a53d-411d-b538-8dc3f75ddc32"
579
+ ]
578
580
  },
579
581
  {
582
+ "slug": "word-count",
583
+ "uuid": "b765fde9-84b4-44cc-bdf1-f66ac1ab8e2c",
580
584
  "core": false,
585
+ "unlocked_by": "isogram",
581
586
  "difficulty": 3,
582
- "slug": "word-count",
583
587
  "topics": [
584
588
  "sorting",
585
589
  "strings"
586
- ],
587
- "unlocked_by": "isogram",
588
- "uuid": "b765fde9-84b4-44cc-bdf1-f66ac1ab8e2c"
590
+ ]
589
591
  },
590
592
  {
593
+ "slug": "allergies",
594
+ "uuid": "cbfd4cfb-abe7-45f9-80e4-3de3b2639fc8",
591
595
  "core": false,
596
+ "unlocked_by": "grains",
592
597
  "difficulty": 4,
593
- "slug": "allergies",
594
598
  "topics": [
595
599
  "bitwise_operations",
596
600
  "enumeration"
597
- ],
598
- "unlocked_by": "grains",
599
- "uuid": "cbfd4cfb-abe7-45f9-80e4-3de3b2639fc8"
601
+ ]
600
602
  },
601
603
  {
604
+ "slug": "rail-fence-cipher",
605
+ "uuid": "bafd87ad-1dc5-4bbe-b853-ed330c3f155a",
602
606
  "core": false,
607
+ "unlocked_by": "tree-building",
603
608
  "difficulty": 4,
604
- "slug": "rail-fence-cipher",
605
609
  "topics": [
606
610
  "algorithms",
607
611
  "cryptography",
@@ -610,333 +614,332 @@
610
614
  "strings",
611
615
  "text_formatting",
612
616
  "transforming"
613
- ],
614
- "unlocked_by": "tree-building",
615
- "uuid": "bafd87ad-1dc5-4bbe-b853-ed330c3f155a"
617
+ ]
616
618
  },
617
619
  {
620
+ "slug": "rna-transcription",
621
+ "uuid": "9bef2163-2a24-4d50-9610-e3cac2e7772a",
618
622
  "core": false,
623
+ "unlocked_by": "hamming",
619
624
  "difficulty": 2,
620
- "slug": "rna-transcription",
621
625
  "topics": [
622
626
  "maps",
623
627
  "transforming"
624
- ],
625
- "unlocked_by": "hamming",
626
- "uuid": "9bef2163-2a24-4d50-9610-e3cac2e7772a"
628
+ ]
627
629
  },
628
630
  {
631
+ "slug": "roman-numerals",
632
+ "uuid": "eccfd2b3-93cf-41a8-b39b-c29596469e8e",
629
633
  "core": false,
634
+ "unlocked_by": "raindrops",
630
635
  "difficulty": 2,
631
- "slug": "roman-numerals",
632
636
  "topics": [
633
637
  "numbers",
634
638
  "transforming"
635
- ],
636
- "unlocked_by": "raindrops",
637
- "uuid": "eccfd2b3-93cf-41a8-b39b-c29596469e8e"
639
+ ]
638
640
  },
639
641
  {
642
+ "slug": "say",
643
+ "uuid": "5d742499-b130-458a-ba3e-a4c3d75419c3",
640
644
  "core": false,
645
+ "unlocked_by": "robot-name",
641
646
  "difficulty": 7,
642
- "slug": "say",
643
647
  "topics": [
644
648
  "numbers",
645
649
  "strings",
646
650
  "text_formatting",
647
651
  "transforming"
648
- ],
649
- "unlocked_by": "robot-name",
650
- "uuid": "5d742499-b130-458a-ba3e-a4c3d75419c3"
652
+ ]
651
653
  },
652
654
  {
655
+ "slug": "circular-buffer",
656
+ "uuid": "c13edd0a-cd39-4f25-970c-c1f9e32bac2c",
653
657
  "core": false,
658
+ "unlocked_by": "error-handling",
654
659
  "difficulty": 5,
655
- "slug": "circular-buffer",
656
660
  "topics": [
657
661
  "queues",
658
662
  "structs"
659
- ],
660
- "unlocked_by": "error-handling",
661
- "uuid": "c13edd0a-cd39-4f25-970c-c1f9e32bac2c"
663
+ ]
662
664
  },
663
665
  {
666
+ "slug": "diamond",
667
+ "uuid": "47b9ad32-e9d9-4cbc-b106-540f3afbfa80",
664
668
  "core": false,
669
+ "unlocked_by": "tournament",
665
670
  "difficulty": 4,
666
- "slug": "diamond",
667
671
  "topics": [
668
672
  "algorithms",
669
673
  "conditionals",
670
674
  "loops",
671
675
  "strings",
672
676
  "text_formatting"
673
- ],
674
- "unlocked_by": "tournament",
675
- "uuid": "47b9ad32-e9d9-4cbc-b106-540f3afbfa80"
677
+ ]
676
678
  },
677
679
  {
680
+ "slug": "react",
681
+ "uuid": "4b168cb9-605b-465d-8f89-3a3b760c1402",
678
682
  "core": false,
683
+ "unlocked_by": "bank-account",
679
684
  "difficulty": 9,
680
- "slug": "react",
681
685
  "topics": [
682
686
  "callbacks",
683
687
  "interfaces",
684
688
  "reactive_programming"
685
- ],
686
- "unlocked_by": "bank-account",
687
- "uuid": "4b168cb9-605b-465d-8f89-3a3b760c1402"
689
+ ]
688
690
  },
689
691
  {
692
+ "slug": "custom-set",
693
+ "uuid": "ad12bbf9-e0c8-433a-8a6b-847ff2d36acf",
690
694
  "core": false,
695
+ "unlocked_by": "error-handling",
691
696
  "difficulty": 4,
692
- "slug": "custom-set",
693
697
  "topics": [
694
698
  "filtering",
695
699
  "loops",
696
700
  "sets"
697
- ],
698
- "unlocked_by": "error-handling",
699
- "uuid": "ad12bbf9-e0c8-433a-8a6b-847ff2d36acf"
701
+ ]
700
702
  },
701
703
  {
704
+ "slug": "atbash-cipher",
705
+ "uuid": "84bda80c-b82c-45f6-95d4-5568d23a22dd",
702
706
  "core": false,
707
+ "unlocked_by": "luhn",
703
708
  "difficulty": 3,
704
- "slug": "atbash-cipher",
705
709
  "topics": [
706
710
  "algorithms",
707
711
  "cryptography",
708
712
  "strings",
709
713
  "transforming"
710
- ],
711
- "unlocked_by": "luhn",
712
- "uuid": "84bda80c-b82c-45f6-95d4-5568d23a22dd"
714
+ ]
713
715
  },
714
716
  {
717
+ "slug": "phone-number",
718
+ "uuid": "458053ea-43a9-409f-a1a6-a7f31329aca4",
715
719
  "core": false,
720
+ "unlocked_by": "clock",
716
721
  "difficulty": 3,
717
- "slug": "phone-number",
718
722
  "topics": [
719
723
  "conditionals",
720
724
  "regular_expressions",
721
725
  "strings",
722
726
  "text_formatting",
723
727
  "transforming"
724
- ],
725
- "unlocked_by": "clock",
726
- "uuid": "458053ea-43a9-409f-a1a6-a7f31329aca4"
728
+ ]
727
729
  },
728
730
  {
731
+ "slug": "strain",
732
+ "uuid": "7fbb0d9d-71d1-4654-8ca0-bb07ddbe6cb5",
729
733
  "core": false,
734
+ "unlocked_by": "raindrops",
730
735
  "difficulty": 2,
731
- "slug": "strain",
732
736
  "topics": [
733
737
  "arrays",
734
738
  "filtering",
735
739
  "loops"
736
- ],
737
- "unlocked_by": "raindrops",
738
- "uuid": "7fbb0d9d-71d1-4654-8ca0-bb07ddbe6cb5"
740
+ ]
739
741
  },
740
742
  {
743
+ "slug": "pig-latin",
744
+ "uuid": "4fe8ba14-20ba-4aa3-b134-7aed799a7522",
741
745
  "core": false,
746
+ "unlocked_by": "clock",
742
747
  "difficulty": 4,
743
- "slug": "pig-latin",
744
748
  "topics": [
745
749
  "conditionals",
746
750
  "strings",
747
751
  "transforming"
748
- ],
749
- "unlocked_by": "clock",
750
- "uuid": "4fe8ba14-20ba-4aa3-b134-7aed799a7522"
752
+ ]
751
753
  },
752
754
  {
755
+ "slug": "prime-factors",
756
+ "uuid": "dbf4d64e-c02d-4bdf-8be1-43f9acb5f2ad",
753
757
  "core": false,
758
+ "unlocked_by": "clock",
754
759
  "difficulty": 3,
755
- "slug": "prime-factors",
756
760
  "topics": [
757
761
  "algorithms",
758
762
  "integers",
759
763
  "mathematics"
760
- ],
761
- "unlocked_by": "clock",
762
- "uuid": "dbf4d64e-c02d-4bdf-8be1-43f9acb5f2ad"
764
+ ]
763
765
  },
764
766
  {
767
+ "slug": "armstrong-numbers",
768
+ "uuid": "b3f06c57-c0de-4b8f-bd16-782b2ce3f478",
765
769
  "core": false,
770
+ "unlocked_by": "clock",
766
771
  "difficulty": 3,
767
- "slug": "armstrong-numbers",
768
772
  "topics": [
769
773
  "algorithms",
770
774
  "integers",
771
775
  "mathematics"
772
- ],
773
- "unlocked_by": "clock",
774
- "uuid": "b3f06c57-c0de-4b8f-bd16-782b2ce3f478"
776
+ ]
775
777
  },
776
778
  {
779
+ "slug": "transpose",
780
+ "uuid": "7f19ebbd-b072-45e5-ad67-2fff8ad1c9e2",
777
781
  "core": false,
782
+ "unlocked_by": "matrix",
778
783
  "difficulty": 5,
779
- "slug": "transpose",
780
784
  "topics": [
781
785
  "loops",
782
786
  "strings",
783
787
  "transforming"
784
- ],
785
- "unlocked_by": "matrix",
786
- "uuid": "7f19ebbd-b072-45e5-ad67-2fff8ad1c9e2"
788
+ ]
787
789
  },
788
790
  {
791
+ "slug": "nth-prime",
792
+ "uuid": "128e0b12-0ad2-431a-971c-ad4ab098b42d",
789
793
  "core": false,
794
+ "unlocked_by": "difference-of-squares",
790
795
  "difficulty": 3,
791
- "slug": "nth-prime",
792
796
  "topics": [
793
797
  "algorithms",
794
798
  "integers",
795
799
  "mathematics"
796
- ],
797
- "unlocked_by": "difference-of-squares",
798
- "uuid": "128e0b12-0ad2-431a-971c-ad4ab098b42d"
800
+ ]
799
801
  },
800
802
  {
803
+ "slug": "diffie-hellman",
804
+ "uuid": "f3058f8b-7e0e-4adb-9add-1df23607d4ed",
801
805
  "core": false,
806
+ "unlocked_by": "luhn",
802
807
  "difficulty": 5,
803
- "slug": "diffie-hellman",
804
808
  "topics": [
805
809
  "algorithms",
806
810
  "cryptography",
807
811
  "integers",
808
812
  "transforming"
809
- ],
810
- "unlocked_by": "luhn",
811
- "uuid": "f3058f8b-7e0e-4adb-9add-1df23607d4ed"
813
+ ]
812
814
  },
813
815
  {
816
+ "slug": "beer-song",
817
+ "uuid": "094ea17e-1759-443a-9117-7c72c6f68b8d",
814
818
  "core": false,
819
+ "unlocked_by": "twelve-days",
815
820
  "difficulty": 3,
816
- "slug": "beer-song",
817
821
  "topics": [
818
822
  "loops",
819
823
  "strings",
820
824
  "text_formatting"
821
- ],
822
- "unlocked_by": "twelve-days",
823
- "uuid": "094ea17e-1759-443a-9117-7c72c6f68b8d"
825
+ ]
824
826
  },
825
827
  {
828
+ "slug": "ocr-numbers",
829
+ "uuid": "13e58d89-4dbb-4384-9268-2f8083588d7a",
826
830
  "core": false,
831
+ "unlocked_by": "tournament",
827
832
  "difficulty": 7,
828
- "slug": "ocr-numbers",
829
833
  "topics": [
830
834
  "parsing",
831
835
  "pattern_recognition"
832
- ],
833
- "unlocked_by": "tournament",
834
- "uuid": "13e58d89-4dbb-4384-9268-2f8083588d7a"
836
+ ]
835
837
  },
836
838
  {
839
+ "slug": "wordy",
840
+ "uuid": "1eb7d7b2-6367-4038-bb86-7dc6c682b6a3",
837
841
  "core": false,
842
+ "unlocked_by": "robot-name",
838
843
  "difficulty": 3,
839
- "slug": "wordy",
840
844
  "topics": [
841
845
  "conditionals",
842
846
  "integers",
843
847
  "parsing",
844
848
  "strings",
845
849
  "type_conversion"
846
- ],
847
- "unlocked_by": "robot-name",
848
- "uuid": "1eb7d7b2-6367-4038-bb86-7dc6c682b6a3"
850
+ ]
849
851
  },
850
852
  {
853
+ "slug": "nucleotide-count",
854
+ "uuid": "5911d90f-ba2f-482f-8c92-c01c112d6fdd",
851
855
  "core": false,
856
+ "unlocked_by": "hamming",
852
857
  "difficulty": 2,
853
- "slug": "nucleotide-count",
854
858
  "topics": [
855
859
  "maps",
856
860
  "parsing",
857
861
  "strings"
858
- ],
859
- "unlocked_by": "hamming",
860
- "uuid": "5911d90f-ba2f-482f-8c92-c01c112d6fdd"
862
+ ]
861
863
  },
862
864
  {
865
+ "slug": "grade-school",
866
+ "uuid": "aa598f3e-9d2b-4f9f-8c14-46e0ac27d5be",
863
867
  "core": false,
868
+ "unlocked_by": "bank-account",
864
869
  "difficulty": 5,
865
- "slug": "grade-school",
866
870
  "topics": [
867
871
  "lists",
868
872
  "sorting",
869
873
  "structs"
870
- ],
871
- "unlocked_by": "bank-account",
872
- "uuid": "aa598f3e-9d2b-4f9f-8c14-46e0ac27d5be"
874
+ ]
873
875
  },
874
876
  {
877
+ "slug": "saddle-points",
878
+ "uuid": "c78102b0-aaa3-4edb-a315-4fcdc26ccae8",
875
879
  "core": false,
880
+ "unlocked_by": "matrix",
876
881
  "difficulty": 5,
877
- "slug": "saddle-points",
878
882
  "topics": [
879
883
  "arrays",
880
884
  "integers",
881
885
  "matrices",
882
886
  "searching"
883
- ],
884
- "unlocked_by": "matrix",
885
- "uuid": "c78102b0-aaa3-4edb-a315-4fcdc26ccae8"
887
+ ]
886
888
  },
887
889
  {
890
+ "slug": "meetup",
891
+ "uuid": "fcf735fe-a659-40ae-858e-6d1e834a4faf",
888
892
  "core": false,
893
+ "unlocked_by": "clock",
889
894
  "difficulty": 3,
890
- "slug": "meetup",
891
895
  "topics": [
892
896
  "dates",
893
897
  "time",
894
898
  "transforming",
895
899
  "type_conversion"
896
- ],
897
- "unlocked_by": "clock",
898
- "uuid": "fcf735fe-a659-40ae-858e-6d1e834a4faf"
900
+ ]
899
901
  },
900
902
  {
903
+ "slug": "simple-linked-list",
904
+ "uuid": "408f235e-f1ce-11e7-8c3f-9a214cf093ae",
901
905
  "core": false,
906
+ "unlocked_by": "error-handling",
902
907
  "difficulty": 4,
903
- "slug": "simple-linked-list",
904
908
  "topics": [
905
909
  "arrays",
906
910
  "loops"
907
- ],
908
- "unlocked_by": "error-handling",
909
- "uuid": "408f235e-f1ce-11e7-8c3f-9a214cf093ae"
911
+ ]
910
912
  },
911
913
  {
914
+ "slug": "linked-list",
915
+ "uuid": "4368df53-39fb-4f36-97c2-39c399cd6d25",
912
916
  "core": false,
917
+ "unlocked_by": "tree-building",
913
918
  "difficulty": 4,
914
- "slug": "linked-list",
915
919
  "topics": [
916
- "pointer",
917
- "data_structure"
918
- ],
919
- "unlocked_by": "tree-building",
920
- "uuid": "4368df53-39fb-4f36-97c2-39c399cd6d25"
920
+ "data_structure",
921
+ "pointer"
922
+ ]
921
923
  },
922
-
923
924
  {
925
+ "slug": "binary-search",
926
+ "uuid": "31c77516-6702-417e-9c6e-19c7e965d513",
924
927
  "core": false,
928
+ "unlocked_by": "tree-building",
925
929
  "difficulty": 5,
926
- "slug": "binary-search",
927
930
  "topics": [
928
931
  "algorithms",
929
932
  "arrays",
930
933
  "searching",
931
934
  "sorting"
932
- ],
933
- "unlocked_by": "tree-building",
934
- "uuid": "31c77516-6702-417e-9c6e-19c7e965d513"
935
+ ]
935
936
  },
936
937
  {
938
+ "slug": "binary-search-tree",
939
+ "uuid": "ac680609-4e52-468d-bf17-afbf7b2fa74b",
937
940
  "core": false,
941
+ "unlocked_by": "tree-building",
938
942
  "difficulty": 5,
939
- "slug": "binary-search-tree",
940
943
  "topics": [
941
944
  "algorithms",
942
945
  "recursion",
@@ -944,122 +947,122 @@
944
947
  "sorting",
945
948
  "structs",
946
949
  "trees"
947
- ],
948
- "unlocked_by": "tree-building",
949
- "uuid": "ac680609-4e52-468d-bf17-afbf7b2fa74b"
950
+ ]
950
951
  },
951
952
  {
953
+ "slug": "kindergarten-garden",
954
+ "uuid": "4282b1f6-d1a2-41b4-9a7f-a9a145fb283b",
952
955
  "core": false,
956
+ "unlocked_by": "tournament",
953
957
  "difficulty": 3,
954
- "slug": "kindergarten-garden",
955
958
  "topics": [
956
959
  "parsing",
957
960
  "records",
958
961
  "searching",
959
962
  "strings",
960
963
  "structs"
961
- ],
962
- "unlocked_by": "tournament",
963
- "uuid": "4282b1f6-d1a2-41b4-9a7f-a9a145fb283b"
964
+ ]
964
965
  },
965
966
  {
967
+ "slug": "simple-cipher",
968
+ "uuid": "7b9201fa-92d2-43fd-8b35-4c552336570b",
966
969
  "core": false,
970
+ "unlocked_by": "luhn",
967
971
  "difficulty": 3,
968
- "slug": "simple-cipher",
969
972
  "topics": [
970
973
  "algorithms",
971
974
  "cryptography",
972
975
  "interfaces",
973
976
  "strings",
974
977
  "transforming"
975
- ],
976
- "unlocked_by": "luhn",
977
- "uuid": "7b9201fa-92d2-43fd-8b35-4c552336570b"
978
+ ]
978
979
  },
979
980
  {
981
+ "slug": "pov",
982
+ "uuid": "cdbadf95-66ff-455f-bea3-eff5024afcb7",
980
983
  "core": false,
984
+ "unlocked_by": "tree-building",
981
985
  "difficulty": 7,
982
- "slug": "pov",
983
986
  "topics": [
984
987
  "graphs",
985
988
  "recursion",
986
989
  "structs",
987
990
  "transforming",
988
991
  "trees"
989
- ],
990
- "unlocked_by": "tree-building",
991
- "uuid": "cdbadf95-66ff-455f-bea3-eff5024afcb7"
992
+ ]
992
993
  },
993
994
  {
995
+ "slug": "minesweeper",
996
+ "uuid": "3bf049f8-7283-4370-aa0c-e10e99d9ef80",
994
997
  "core": false,
998
+ "unlocked_by": "matrix",
995
999
  "difficulty": 5,
996
- "slug": "minesweeper",
997
1000
  "topics": [
998
1001
  "arrays",
999
1002
  "games",
1000
1003
  "loops",
1001
1004
  "matrices",
1002
1005
  "transforming"
1003
- ],
1004
- "unlocked_by": "matrix",
1005
- "uuid": "3bf049f8-7283-4370-aa0c-e10e99d9ef80"
1006
+ ]
1006
1007
  },
1007
1008
  {
1009
+ "slug": "robot-simulator",
1010
+ "uuid": "fc0e4034-0744-43f8-9969-7789cff0607f",
1008
1011
  "core": false,
1012
+ "unlocked_by": "bank-account",
1009
1013
  "difficulty": 6,
1010
- "slug": "robot-simulator",
1011
1014
  "topics": [
1012
1015
  "concurrency",
1013
1016
  "loops",
1014
1017
  "sequences",
1015
1018
  "strings",
1016
1019
  "structs"
1017
- ],
1018
- "unlocked_by": "bank-account",
1019
- "uuid": "fc0e4034-0744-43f8-9969-7789cff0607f"
1020
+ ]
1020
1021
  },
1021
1022
  {
1023
+ "slug": "word-search",
1024
+ "uuid": "7fdf352b-e5a3-452e-91a2-03587be48ad0",
1022
1025
  "core": false,
1026
+ "unlocked_by": "matrix",
1023
1027
  "difficulty": 4,
1024
- "slug": "word-search",
1025
1028
  "topics": [
1026
1029
  "matrices",
1027
1030
  "searching",
1028
1031
  "strings"
1029
- ],
1030
- "unlocked_by": "matrix",
1031
- "uuid": "7fdf352b-e5a3-452e-91a2-03587be48ad0"
1032
+ ]
1032
1033
  },
1033
1034
  {
1035
+ "slug": "all-your-base",
1036
+ "uuid": "932a7ed0-c331-49b1-917b-a197198f642a",
1034
1037
  "core": false,
1038
+ "unlocked_by": "grains",
1035
1039
  "difficulty": 3,
1036
- "slug": "all-your-base",
1037
1040
  "topics": [
1038
1041
  "integers",
1039
1042
  "mathematics",
1040
1043
  "transforming"
1041
- ],
1042
- "unlocked_by": "grains",
1043
- "uuid": "932a7ed0-c331-49b1-917b-a197198f642a"
1044
+ ]
1044
1045
  },
1045
1046
  {
1047
+ "slug": "connect",
1048
+ "uuid": "395116bc-5be9-4140-a2ef-c7e8689149f2",
1046
1049
  "core": false,
1050
+ "unlocked_by": "matrix",
1047
1051
  "difficulty": 9,
1048
- "slug": "connect",
1049
1052
  "topics": [
1050
1053
  "arrays",
1051
1054
  "games",
1052
1055
  "graphs",
1053
1056
  "loops",
1054
1057
  "searching"
1055
- ],
1056
- "unlocked_by": "matrix",
1057
- "uuid": "395116bc-5be9-4140-a2ef-c7e8689149f2"
1058
+ ]
1058
1059
  },
1059
1060
  {
1061
+ "slug": "ledger",
1062
+ "uuid": "7aa53a27-4ff3-4891-809f-2af728eb55a0",
1060
1063
  "core": false,
1064
+ "unlocked_by": "tree-building",
1061
1065
  "difficulty": 4,
1062
- "slug": "ledger",
1063
1066
  "topics": [
1064
1067
  "dates",
1065
1068
  "integers",
@@ -1068,26 +1071,26 @@
1068
1071
  "sorting",
1069
1072
  "strings",
1070
1073
  "text_formatting"
1071
- ],
1072
- "unlocked_by": "tree-building",
1073
- "uuid": "7aa53a27-4ff3-4891-809f-2af728eb55a0"
1074
+ ]
1074
1075
  },
1075
1076
  {
1077
+ "slug": "markdown",
1078
+ "uuid": "a7469032-c4d0-4e15-aa0c-4e9f6588b4c8",
1076
1079
  "core": false,
1080
+ "unlocked_by": "twelve-days",
1077
1081
  "difficulty": 4,
1078
- "slug": "markdown",
1079
1082
  "topics": [
1080
1083
  "refactoring",
1081
1084
  "strings",
1082
1085
  "text_formatting"
1083
- ],
1084
- "unlocked_by": "twelve-days",
1085
- "uuid": "a7469032-c4d0-4e15-aa0c-4e9f6588b4c8"
1086
+ ]
1086
1087
  },
1087
1088
  {
1089
+ "slug": "yacht",
1090
+ "uuid": "37980ffd-acc7-44f4-ad32-43e0624457a8",
1088
1091
  "core": false,
1092
+ "unlocked_by": "tournament",
1089
1093
  "difficulty": 4,
1090
- "slug": "yacht",
1091
1094
  "topics": [
1092
1095
  "equality",
1093
1096
  "games",
@@ -1095,14 +1098,14 @@
1095
1098
  "parsing",
1096
1099
  "pattern_matching",
1097
1100
  "sequences"
1098
- ],
1099
- "unlocked_by": "tournament",
1100
- "uuid": "37980ffd-acc7-44f4-ad32-43e0624457a8"
1101
+ ]
1101
1102
  },
1102
1103
  {
1104
+ "slug": "poker",
1105
+ "uuid": "9be60690-39bb-4173-a2ed-faa4acd8f38f",
1103
1106
  "core": false,
1107
+ "unlocked_by": "tournament",
1104
1108
  "difficulty": 5,
1105
- "slug": "poker",
1106
1109
  "topics": [
1107
1110
  "equality",
1108
1111
  "games",
@@ -1110,249 +1113,264 @@
1110
1113
  "pattern_matching",
1111
1114
  "sequences",
1112
1115
  "strings"
1113
- ],
1114
- "unlocked_by": "tournament",
1115
- "uuid": "9be60690-39bb-4173-a2ed-faa4acd8f38f"
1116
+ ]
1116
1117
  },
1117
1118
  {
1119
+ "slug": "variable-length-quantity",
1120
+ "uuid": "333231db-2605-438e-9eb0-d1bdc51c7419",
1118
1121
  "core": false,
1122
+ "unlocked_by": "grains",
1119
1123
  "difficulty": 5,
1120
- "slug": "variable-length-quantity",
1121
1124
  "topics": [
1122
1125
  "bitwise_operations",
1123
1126
  "integers",
1124
1127
  "transforming"
1125
- ],
1126
- "unlocked_by": "grains",
1127
- "uuid": "333231db-2605-438e-9eb0-d1bdc51c7419"
1128
+ ]
1128
1129
  },
1129
1130
  {
1131
+ "slug": "forth",
1132
+ "uuid": "09d0d78f-f262-4f34-b1de-c2acd7ed80cd",
1130
1133
  "core": false,
1134
+ "unlocked_by": "bank-account",
1131
1135
  "difficulty": 8,
1132
- "slug": "forth",
1133
1136
  "topics": [
1134
1137
  "domain_specific_languages",
1135
1138
  "parsing",
1136
1139
  "stacks"
1137
- ],
1138
- "unlocked_by": "bank-account",
1139
- "uuid": "09d0d78f-f262-4f34-b1de-c2acd7ed80cd"
1140
+ ]
1140
1141
  },
1141
1142
  {
1143
+ "slug": "change",
1144
+ "uuid": "94a21509-ebd5-4a66-bb0e-0341e57e3c73",
1142
1145
  "core": false,
1146
+ "unlocked_by": "bank-account",
1143
1147
  "difficulty": 5,
1144
- "slug": "change",
1145
1148
  "topics": [
1146
1149
  "algorithms",
1147
1150
  "arrays",
1148
1151
  "loops",
1149
1152
  "mathematics",
1150
1153
  "searching"
1151
- ],
1152
- "unlocked_by": "bank-account",
1153
- "uuid": "94a21509-ebd5-4a66-bb0e-0341e57e3c73"
1154
+ ]
1154
1155
  },
1155
1156
  {
1157
+ "slug": "bowling",
1158
+ "uuid": "8d5aaf47-7503-4797-85ed-d35a8755cfd4",
1156
1159
  "core": false,
1160
+ "unlocked_by": "tournament",
1157
1161
  "difficulty": 5,
1158
- "slug": "bowling",
1159
1162
  "topics": [
1160
1163
  "algorithms",
1161
1164
  "arrays",
1162
1165
  "conditionals"
1163
- ],
1164
- "unlocked_by": "tournament",
1165
- "uuid": "8d5aaf47-7503-4797-85ed-d35a8755cfd4"
1166
+ ]
1166
1167
  },
1167
1168
  {
1169
+ "slug": "run-length-encoding",
1170
+ "uuid": "29ea064e-9d2a-11e7-abc4-cec278b6b50a",
1168
1171
  "core": false,
1172
+ "unlocked_by": "isogram",
1169
1173
  "difficulty": 4,
1170
- "slug": "run-length-encoding",
1171
1174
  "topics": [
1172
1175
  "parsing",
1173
1176
  "strings",
1174
1177
  "transforming"
1175
- ],
1176
- "unlocked_by": "isogram",
1177
- "uuid": "29ea064e-9d2a-11e7-abc4-cec278b6b50a"
1178
+ ]
1178
1179
  },
1179
1180
  {
1181
+ "slug": "collatz-conjecture",
1182
+ "uuid": "0c17444e-65b0-4bc8-a7e1-ee6ab8c2e078",
1180
1183
  "core": false,
1184
+ "unlocked_by": null,
1181
1185
  "difficulty": 1,
1182
- "slug": "collatz-conjecture",
1183
1186
  "topics": [
1184
- "control-flow (loops)",
1187
+ "conditionals",
1188
+ "control_flow_loops",
1185
1189
  "integers",
1186
- "mathematics",
1187
- "conditionals"
1188
- ],
1189
- "unlocked_by": null,
1190
- "uuid": "0c17444e-65b0-4bc8-a7e1-ee6ab8c2e078"
1190
+ "mathematics"
1191
+ ]
1191
1192
  },
1192
1193
  {
1194
+ "slug": "spiral-matrix",
1195
+ "uuid": "4fc21001-2ada-41f6-92b6-cf0152df18bf",
1193
1196
  "core": false,
1197
+ "unlocked_by": "matrix",
1194
1198
  "difficulty": 4,
1195
- "slug": "spiral-matrix",
1196
1199
  "topics": [
1197
- "loops",
1198
1200
  "arrays",
1201
+ "loops",
1199
1202
  "matrices"
1200
- ],
1201
- "unlocked_by": "matrix",
1202
- "uuid": "4fc21001-2ada-41f6-92b6-cf0152df18bf"
1203
+ ]
1203
1204
  },
1204
1205
  {
1206
+ "slug": "book-store",
1207
+ "uuid": "9265ef0c-a882-4e2e-9689-cd4fddac6097",
1205
1208
  "core": false,
1209
+ "unlocked_by": "error-handling",
1206
1210
  "difficulty": 8,
1207
- "slug": "book-store",
1208
1211
  "topics": [
1212
+ "algorithms",
1213
+ "floating_point_numbers",
1209
1214
  "integers",
1210
1215
  "lists",
1211
- "algorithms",
1212
- "mathematics",
1213
- "floating_point_numbers"
1214
- ],
1215
- "unlocked_by": "error-handling",
1216
- "uuid": "9265ef0c-a882-4e2e-9689-cd4fddac6097"
1216
+ "mathematics"
1217
+ ]
1217
1218
  },
1218
1219
  {
1220
+ "slug": "rotational-cipher",
1221
+ "uuid": "37821140-c0d0-4da8-8f50-47356705a615",
1219
1222
  "core": false,
1223
+ "unlocked_by": "luhn",
1220
1224
  "difficulty": 2,
1221
- "slug": "rotational-cipher",
1222
1225
  "topics": [
1226
+ "cryptography",
1223
1227
  "integers",
1224
- "strings",
1225
- "cryptography"
1226
- ],
1227
- "unlocked_by": "luhn",
1228
- "uuid": "37821140-c0d0-4da8-8f50-47356705a615"
1228
+ "strings"
1229
+ ]
1229
1230
  },
1230
1231
  {
1232
+ "slug": "proverb",
1233
+ "uuid": "b6d05e8f-542b-4789-9cbc-7ba132a5f03d",
1231
1234
  "core": false,
1235
+ "unlocked_by": "two-fer",
1232
1236
  "difficulty": 4,
1233
- "slug": "proverb",
1234
1237
  "topics": [
1235
1238
  "arrays",
1236
1239
  "loops",
1237
1240
  "strings"
1238
- ],
1239
- "unlocked_by": "two-fer",
1240
- "uuid": "b6d05e8f-542b-4789-9cbc-7ba132a5f03d"
1241
+ ]
1241
1242
  },
1242
1243
  {
1243
- "difficulty": 2,
1244
1244
  "slug": "isbn-verifier",
1245
+ "uuid": "3530f2f0-ee5f-46a3-a8ee-e9927a637253",
1246
+ "core": false,
1247
+ "unlocked_by": "difference-of-squares",
1248
+ "difficulty": 2,
1245
1249
  "topics": [
1246
1250
  "arrays"
1247
- ],
1248
- "unlocked_by": "difference-of-squares",
1249
- "uuid": "3530f2f0-ee5f-46a3-a8ee-e9927a637253"
1251
+ ]
1250
1252
  },
1251
1253
  {
1254
+ "slug": "zebra-puzzle",
1255
+ "uuid": "e31199ac-e657-4997-b931-63893a575c08",
1252
1256
  "core": false,
1257
+ "unlocked_by": "bank-account",
1253
1258
  "difficulty": 6,
1254
- "slug": "zebra-puzzle",
1255
1259
  "topics": [
1256
- "arrays",
1257
1260
  "algorithms",
1261
+ "arrays",
1258
1262
  "searching"
1259
- ],
1260
- "unlocked_by": "bank-account",
1261
- "uuid": "e31199ac-e657-4997-b931-63893a575c08"
1263
+ ]
1262
1264
  },
1263
1265
  {
1266
+ "slug": "dominoes",
1267
+ "uuid": "2e5c9e76-decd-49db-be4b-353ebeb46b73",
1264
1268
  "core": false,
1269
+ "unlocked_by": "error-handling",
1265
1270
  "difficulty": 4,
1266
- "slug": "dominoes",
1267
1271
  "topics": [
1268
1272
  "algorithms",
1269
1273
  "arrays",
1270
1274
  "searching"
1271
- ],
1272
- "unlocked_by": "error-handling",
1273
- "uuid": "2e5c9e76-decd-49db-be4b-353ebeb46b73"
1275
+ ]
1274
1276
  },
1275
1277
  {
1278
+ "slug": "alphametics",
1279
+ "uuid": "6b313720-104a-46c2-8290-4b4af121101f ",
1276
1280
  "core": false,
1281
+ "unlocked_by": "error-handling",
1277
1282
  "difficulty": 5,
1278
- "slug": "alphametics",
1279
1283
  "topics": [
1280
1284
  "algorithms",
1281
1285
  "arrays",
1282
1286
  "mathematics",
1283
1287
  "searching"
1284
- ],
1285
- "unlocked_by": "error-handling",
1286
- "uuid": "6b313720-104a-46c2-8290-4b4af121101f "
1288
+ ]
1287
1289
  },
1288
1290
  {
1291
+ "slug": "two-bucket",
1292
+ "uuid": "549bf4a0-b8eb-4f66-8990-7df6cdfaee0c",
1289
1293
  "core": false,
1294
+ "unlocked_by": "tree-building",
1290
1295
  "difficulty": 5,
1291
- "slug": "two-bucket",
1292
1296
  "topics": [
1293
1297
  "algorithms",
1294
1298
  "conditionals",
1295
1299
  "searching"
1296
- ],
1297
- "unlocked_by": "tree-building",
1298
- "uuid": "549bf4a0-b8eb-4f66-8990-7df6cdfaee0c"
1300
+ ]
1299
1301
  },
1300
1302
  {
1303
+ "slug": "grep",
1304
+ "uuid": "ec5dab72-dd96-4dce-8886-aff52a6eb090",
1301
1305
  "core": false,
1306
+ "unlocked_by": "hamming",
1302
1307
  "difficulty": 4,
1303
- "slug": "grep",
1304
1308
  "topics": [
1305
1309
  "algorithms",
1306
1310
  "arrays",
1307
1311
  "conditionals",
1308
1312
  "searching",
1309
1313
  "strings"
1310
- ],
1311
- "unlocked_by": "hamming",
1312
- "uuid": "ec5dab72-dd96-4dce-8886-aff52a6eb090"
1314
+ ]
1313
1315
  },
1314
1316
  {
1317
+ "slug": "rectangles",
1318
+ "uuid": "e7e207dc-bf8b-4bbf-b06e-edd674e09a06",
1315
1319
  "core": false,
1320
+ "unlocked_by": "tournament",
1316
1321
  "difficulty": 4,
1317
- "slug": "rectangles",
1318
1322
  "topics": [
1319
1323
  "arrays",
1320
- "control-flow (conditionals)",
1321
- "control-flow (loops)",
1324
+ "control_flow_conditionals",
1325
+ "control_flow_loops",
1322
1326
  "matrices",
1323
1327
  "strings"
1324
- ],
1325
- "unlocked_by": "tournament",
1326
- "uuid": "e7e207dc-bf8b-4bbf-b06e-edd674e09a06"
1328
+ ]
1327
1329
  },
1328
1330
  {
1329
- "deprecated": true,
1330
1331
  "slug": "binary",
1331
- "uuid": "bf2dcbc4-266f-4cad-9cd7-76d446360a5d"
1332
+ "uuid": "bf2dcbc4-266f-4cad-9cd7-76d446360a5d",
1333
+ "core": false,
1334
+ "unlocked_by": null,
1335
+ "difficulty": 0,
1336
+ "topics": null,
1337
+ "deprecated": true
1332
1338
  },
1333
1339
  {
1334
- "deprecated": true,
1335
1340
  "slug": "counter",
1336
- "uuid": "9a06556b-a661-4329-97a1-b5d0f0c7590c"
1341
+ "uuid": "9a06556b-a661-4329-97a1-b5d0f0c7590c",
1342
+ "core": false,
1343
+ "unlocked_by": null,
1344
+ "difficulty": 0,
1345
+ "topics": null,
1346
+ "deprecated": true
1337
1347
  },
1338
1348
  {
1339
- "deprecated": true,
1340
1349
  "slug": "hexadecimal",
1341
- "uuid": "0c9cef3d-57f6-479a-aca4-25f310426d6a"
1350
+ "uuid": "0c9cef3d-57f6-479a-aca4-25f310426d6a",
1351
+ "core": false,
1352
+ "unlocked_by": null,
1353
+ "difficulty": 0,
1354
+ "topics": null,
1355
+ "deprecated": true
1342
1356
  },
1343
1357
  {
1344
- "deprecated": true,
1345
1358
  "slug": "octal",
1346
- "uuid": "4840c889-ebe5-4082-98c0-b9ed8618f6eb"
1359
+ "uuid": "4840c889-ebe5-4082-98c0-b9ed8618f6eb",
1360
+ "core": false,
1361
+ "unlocked_by": null,
1362
+ "difficulty": 0,
1363
+ "topics": null,
1364
+ "deprecated": true
1347
1365
  },
1348
1366
  {
1349
- "deprecated": true,
1350
1367
  "slug": "trinary",
1351
- "uuid": "52af9f03-8b6b-4d75-a363-124f3269dccd"
1368
+ "uuid": "52af9f03-8b6b-4d75-a363-124f3269dccd",
1369
+ "core": false,
1370
+ "unlocked_by": null,
1371
+ "difficulty": 0,
1372
+ "topics": null,
1373
+ "deprecated": true
1352
1374
  }
1353
- ],
1354
- "foregone": [
1355
- ],
1356
- "ignore_pattern": "example(?!.*test)",
1357
- "language": "Go"
1375
+ ]
1358
1376
  }