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
data/tracks/c/config.json CHANGED
@@ -1,661 +1,682 @@
1
1
  {
2
+ "language": "C",
2
3
  "active": true,
4
+ "blurb": "",
3
5
  "exercises": [
4
6
  {
7
+ "slug": "hello-world",
8
+ "uuid": "ee307061-5bc2-439c-8815-abd730aedc2d",
5
9
  "core": true,
10
+ "unlocked_by": null,
6
11
  "difficulty": 1,
7
- "slug": "hello-world",
8
12
  "topics": [
9
13
  "control_flow_if_statements",
10
14
  "optional_values",
11
15
  "text_formatting"
12
- ],
13
- "uuid": "ee307061-5bc2-439c-8815-abd730aedc2d"
16
+ ]
14
17
  },
15
18
  {
19
+ "slug": "isogram",
20
+ "uuid": "b3c9d339-60bc-48fe-84ba-77cbc0017a89",
16
21
  "core": true,
22
+ "unlocked_by": null,
17
23
  "difficulty": 1,
18
- "slug": "isogram",
19
24
  "topics": [
20
25
  "arrays",
21
26
  "control_flow_if_else_statements",
22
27
  "control_flow_loops",
23
28
  "strings"
24
- ],
25
- "uuid": "b3c9d339-60bc-48fe-84ba-77cbc0017a89"
29
+ ]
26
30
  },
27
31
  {
32
+ "slug": "acronym",
33
+ "uuid": "1a8ba121-d2c4-4994-8c6b-610d8987346d",
28
34
  "core": false,
35
+ "unlocked_by": "isogram",
29
36
  "difficulty": 1,
30
- "slug": "acronym",
31
37
  "topics": [
32
38
  "control_flow_loops",
33
39
  "memory_management",
34
40
  "strings"
35
- ],
36
- "unlocked_by": "isogram",
37
- "uuid": "1a8ba121-d2c4-4994-8c6b-610d8987346d"
41
+ ]
38
42
  },
39
43
  {
44
+ "slug": "word-count",
45
+ "uuid": "1e4f4fcf-c32d-459f-8920-15ac56008666",
40
46
  "core": false,
47
+ "unlocked_by": "isogram",
41
48
  "difficulty": 3,
42
- "slug": "word-count",
43
49
  "topics": [
44
50
  "filtering",
45
51
  "memory_management",
46
52
  "strings",
47
53
  "structs"
48
- ],
49
- "unlocked_by": "isogram",
50
- "uuid": "1e4f4fcf-c32d-459f-8920-15ac56008666"
54
+ ]
51
55
  },
52
56
  {
57
+ "slug": "pangram",
58
+ "uuid": "6311b9f8-b438-4186-88b2-1e4f55275ccb",
53
59
  "core": false,
60
+ "unlocked_by": "isogram",
54
61
  "difficulty": 3,
55
- "slug": "pangram",
56
62
  "topics": [
57
63
  "control_flow_if_else_statements",
58
64
  "control_flow_loops",
59
65
  "strings"
60
- ],
61
- "unlocked_by": "isogram",
62
- "uuid": "6311b9f8-b438-4186-88b2-1e4f55275ccb"
66
+ ]
63
67
  },
64
68
  {
69
+ "slug": "gigasecond",
70
+ "uuid": "000340f6-e30d-4d49-a255-016237d6fe60",
65
71
  "core": true,
72
+ "unlocked_by": null,
66
73
  "difficulty": 1,
67
- "slug": "gigasecond",
68
74
  "topics": [
69
75
  "dates"
70
- ],
71
- "uuid": "000340f6-e30d-4d49-a255-016237d6fe60"
76
+ ]
72
77
  },
73
78
  {
79
+ "slug": "space-age",
80
+ "uuid": "fc03c7de-b0c6-4806-90bb-e9dda846e660",
74
81
  "core": false,
82
+ "unlocked_by": "gigasecond",
75
83
  "difficulty": 1,
76
- "slug": "space-age",
77
84
  "topics": [
78
85
  "functions"
79
- ],
80
- "unlocked_by": "gigasecond",
81
- "uuid": "fc03c7de-b0c6-4806-90bb-e9dda846e660"
86
+ ]
82
87
  },
83
88
  {
89
+ "slug": "meetup",
90
+ "uuid": "a7baa53f-e828-457e-a456-ba3471494d80",
84
91
  "core": false,
92
+ "unlocked_by": "gigasecond",
85
93
  "difficulty": 4,
86
- "slug": "meetup",
87
94
  "topics": [
88
95
  "control_flow_if_statements",
89
96
  "preprocessor_x_macros_in_test",
90
97
  "strings",
91
98
  "structs",
92
99
  "time_functions"
93
- ],
94
- "unlocked_by": "gigasecond",
95
- "uuid": "a7baa53f-e828-457e-a456-ba3471494d80"
100
+ ]
96
101
  },
97
102
  {
103
+ "slug": "hamming",
104
+ "uuid": "fa5e6bbb-2eaf-484f-a5c5-de5cb2a9175b",
98
105
  "core": true,
106
+ "unlocked_by": null,
99
107
  "difficulty": 2,
100
- "slug": "hamming",
101
108
  "topics": [
102
109
  "arrays",
103
110
  "control_flow_loops",
104
111
  "strings"
105
- ],
106
- "uuid": "fa5e6bbb-2eaf-484f-a5c5-de5cb2a9175b"
112
+ ]
107
113
  },
108
114
  {
115
+ "slug": "rna-transcription",
116
+ "uuid": "d12fea98-bf4e-476d-a91c-799fc98a1690",
109
117
  "core": false,
118
+ "unlocked_by": "hamming",
110
119
  "difficulty": 2,
111
- "slug": "rna-transcription",
112
120
  "topics": [
113
121
  "control_flow_case_statements",
114
122
  "control_flow_loops",
115
123
  "strings"
116
- ],
117
- "unlocked_by": "hamming",
118
- "uuid": "d12fea98-bf4e-476d-a91c-799fc98a1690"
124
+ ]
119
125
  },
120
126
  {
127
+ "slug": "nucleotide-count",
128
+ "uuid": "38669990-e1e6-4486-a603-575a135d1f5c",
121
129
  "core": false,
130
+ "unlocked_by": "hamming",
122
131
  "difficulty": 2,
123
- "slug": "nucleotide-count",
124
132
  "topics": [
125
133
  "control_flow_loops_switch_if_statements",
126
134
  "memory_management",
127
135
  "strings",
128
136
  "text_formatting"
129
- ],
130
- "unlocked_by": "hamming",
131
- "uuid": "38669990-e1e6-4486-a603-575a135d1f5c"
137
+ ]
132
138
  },
133
139
  {
140
+ "slug": "grains",
141
+ "uuid": "53959d50-efad-4911-84de-b67efe1bee5f",
134
142
  "core": true,
143
+ "unlocked_by": null,
135
144
  "difficulty": 1,
136
- "slug": "grains",
137
145
  "topics": [
138
146
  "bitwise_operations",
139
147
  "control_flow_loops",
140
148
  "performance_optimizations"
141
- ],
142
- "uuid": "53959d50-efad-4911-84de-b67efe1bee5f"
149
+ ]
143
150
  },
144
151
  {
152
+ "slug": "leap",
153
+ "uuid": "9b047dda-b85e-4378-9487-9f9cce086e4f",
145
154
  "core": false,
155
+ "unlocked_by": "grains",
146
156
  "difficulty": 1,
147
- "slug": "leap",
148
157
  "topics": [
149
158
  "control_flow_if_else_statements",
150
159
  "logic"
151
- ],
152
- "unlocked_by": "grains",
153
- "uuid": "9b047dda-b85e-4378-9487-9f9cce086e4f"
160
+ ]
154
161
  },
155
162
  {
163
+ "slug": "beer-song",
164
+ "uuid": "c06789cb-cdd6-44a7-bee5-16e0d85e913a",
156
165
  "core": true,
166
+ "unlocked_by": null,
157
167
  "difficulty": 2,
158
- "slug": "beer-song",
159
168
  "topics": [
160
169
  "control_flow_if_else_statements",
161
170
  "control_flow_loops",
162
171
  "strings"
163
- ],
164
- "uuid": "c06789cb-cdd6-44a7-bee5-16e0d85e913a"
172
+ ]
165
173
  },
166
174
  {
175
+ "slug": "raindrops",
176
+ "uuid": "93acdd0d-9bd1-4dec-a572-fd12d0c66187",
167
177
  "core": false,
178
+ "unlocked_by": "beer-song",
168
179
  "difficulty": 2,
169
- "slug": "raindrops",
170
180
  "topics": [
171
181
  "control_flow_if_else_statements",
172
182
  "strings"
173
- ],
174
- "unlocked_by": "beer-song",
175
- "uuid": "93acdd0d-9bd1-4dec-a572-fd12d0c66187"
183
+ ]
176
184
  },
177
185
  {
186
+ "slug": "bob",
187
+ "uuid": "b0feb5e2-eb94-4393-b60d-cf8a275d1860",
178
188
  "core": false,
189
+ "unlocked_by": "beer-song",
179
190
  "difficulty": 5,
180
- "slug": "bob",
181
191
  "topics": [
182
192
  "control_flow_if_else_statements",
183
193
  "strings"
184
- ],
185
- "unlocked_by": "beer-song",
186
- "uuid": "b0feb5e2-eb94-4393-b60d-cf8a275d1860"
194
+ ]
187
195
  },
188
196
  {
197
+ "slug": "difference-of-squares",
198
+ "uuid": "9802cbc0-eb70-4840-b8ee-a228f1fc29ea",
189
199
  "core": true,
200
+ "unlocked_by": null,
190
201
  "difficulty": 1,
191
- "slug": "difference-of-squares",
192
202
  "topics": [
193
203
  "control_flow_loops"
194
- ],
195
- "uuid": "9802cbc0-eb70-4840-b8ee-a228f1fc29ea"
204
+ ]
196
205
  },
197
206
  {
207
+ "slug": "sum-of-multiples",
208
+ "uuid": "06a3660f-16b0-4391-939e-a9786887b0b2",
198
209
  "core": false,
210
+ "unlocked_by": "difference-of-squares",
199
211
  "difficulty": 4,
200
- "slug": "sum-of-multiples",
201
212
  "topics": [
202
213
  "control_flow_case_statements",
203
214
  "control_flow_loops"
204
- ],
205
- "unlocked_by": "difference-of-squares",
206
- "uuid": "06a3660f-16b0-4391-939e-a9786887b0b2"
215
+ ]
207
216
  },
208
217
  {
218
+ "slug": "binary-search",
219
+ "uuid": "db1771d2-afd8-4e01-9b6a-6be75029ef1d",
209
220
  "core": true,
221
+ "unlocked_by": null,
210
222
  "difficulty": 2,
211
- "slug": "binary-search",
212
223
  "topics": [
213
224
  "arrays",
214
225
  "control_flow_if_else_statements",
215
226
  "control_flow_loops",
216
227
  "searching"
217
- ],
218
- "uuid": "db1771d2-afd8-4e01-9b6a-6be75029ef1d"
228
+ ]
219
229
  },
220
230
  {
231
+ "slug": "anagram",
232
+ "uuid": "0b64079a-7fec-42b4-bd2e-1b04dd4b7e6e",
221
233
  "core": false,
234
+ "unlocked_by": "binary-search",
222
235
  "difficulty": 5,
223
- "slug": "anagram",
224
236
  "topics": [
225
237
  "filtering",
226
238
  "strings",
227
239
  "structs"
228
- ],
229
- "unlocked_by": "binary-search",
230
- "uuid": "0b64079a-7fec-42b4-bd2e-1b04dd4b7e6e"
240
+ ]
231
241
  },
232
242
  {
243
+ "slug": "roman-numerals",
244
+ "uuid": "6cde608f-9819-46cd-884b-dbda39a4fa16",
233
245
  "core": true,
246
+ "unlocked_by": null,
234
247
  "difficulty": 3,
235
- "slug": "roman-numerals",
236
248
  "topics": [
237
249
  "arrays",
238
250
  "control_flow_loops",
239
251
  "memory_management",
240
252
  "strings",
241
253
  "structs"
242
- ],
243
- "uuid": "6cde608f-9819-46cd-884b-dbda39a4fa16"
254
+ ]
244
255
  },
245
256
  {
257
+ "slug": "allergies",
258
+ "uuid": "871f1c41-debd-4807-8ee5-bde54c3918f8",
246
259
  "core": true,
260
+ "unlocked_by": null,
247
261
  "difficulty": 4,
248
- "slug": "allergies",
249
262
  "topics": [
250
263
  "control_flow_if_statements",
251
264
  "control_flow_loops",
252
265
  "memory_management",
253
266
  "structs"
254
- ],
255
- "uuid": "871f1c41-debd-4807-8ee5-bde54c3918f8"
267
+ ]
256
268
  },
257
269
  {
270
+ "slug": "atbash-cipher",
271
+ "uuid": "180f59f3-78ab-4368-9fa7-e3d98a9dca78",
258
272
  "core": true,
273
+ "unlocked_by": null,
259
274
  "difficulty": 5,
260
- "slug": "atbash-cipher",
261
275
  "topics": [
262
276
  "control_flow_if_else_statements",
263
277
  "control_flow_loops",
264
278
  "strings"
265
- ],
266
- "uuid": "180f59f3-78ab-4368-9fa7-e3d98a9dca78"
279
+ ]
267
280
  },
268
281
  {
282
+ "slug": "series",
283
+ "uuid": "40bcec79-7235-4ac6-b69f-8e3a6374188d",
269
284
  "core": false,
285
+ "unlocked_by": "atbash-cipher",
270
286
  "difficulty": 2,
271
- "slug": "series",
272
287
  "topics": [
273
288
  "control_flow_if_statements",
274
289
  "memory_management",
275
290
  "strings",
276
291
  "text_formatting"
277
- ],
278
- "unlocked_by": "atbash-cipher",
279
- "uuid": "40bcec79-7235-4ac6-b69f-8e3a6374188d"
292
+ ]
280
293
  },
281
294
  {
295
+ "slug": "react",
296
+ "uuid": "929b651e-2017-4f98-b2cb-1dc46c609703",
282
297
  "core": false,
298
+ "unlocked_by": "atbash-cipher",
283
299
  "difficulty": 10,
284
- "slug": "react",
285
300
  "topics": [
286
301
  "functions",
287
302
  "memory_management"
288
- ],
289
- "unlocked_by": "atbash-cipher",
290
- "uuid": "929b651e-2017-4f98-b2cb-1dc46c609703"
303
+ ]
291
304
  },
292
305
  {
306
+ "slug": "phone-number",
307
+ "uuid": "660d1586-c4e0-4537-94b5-455a983820f8",
293
308
  "core": true,
309
+ "unlocked_by": null,
294
310
  "difficulty": 4,
295
- "slug": "phone-number",
296
311
  "topics": [
297
312
  "control_flow_if_else_statements",
298
313
  "control_flow_loops",
299
314
  "memory_management",
300
315
  "strings"
301
- ],
302
- "uuid": "660d1586-c4e0-4537-94b5-455a983820f8"
316
+ ]
303
317
  },
304
318
  {
319
+ "slug": "clock",
320
+ "uuid": "b868eeff-400c-4e46-8675-10d85c14b503",
305
321
  "core": true,
322
+ "unlocked_by": null,
306
323
  "difficulty": 2,
307
- "slug": "clock",
308
324
  "topics": [
309
325
  "control_flow_if_statements",
310
326
  "preprocessor_x_macros_in_test",
311
327
  "strings",
312
328
  "text_formatting"
313
- ],
314
- "uuid": "b868eeff-400c-4e46-8675-10d85c14b503"
329
+ ]
315
330
  },
316
331
  {
332
+ "slug": "sieve",
333
+ "uuid": "fb2530a3-cbbf-4ba9-88d0-203faac03e96",
317
334
  "core": true,
335
+ "unlocked_by": null,
318
336
  "difficulty": 2,
319
- "slug": "sieve",
320
337
  "topics": [
321
338
  "control_flow_if_statements",
322
339
  "memory_management"
323
- ],
324
- "uuid": "fb2530a3-cbbf-4ba9-88d0-203faac03e96"
340
+ ]
325
341
  },
326
342
  {
343
+ "slug": "nth-prime",
344
+ "uuid": "a0a703b2-244b-4739-b318-b837618b1047",
327
345
  "core": false,
346
+ "unlocked_by": "sieve",
328
347
  "difficulty": 4,
329
- "slug": "nth-prime",
330
348
  "topics": [
331
349
  "control_flow_if_else_statements",
332
350
  "control_flow_loops",
333
351
  "performance_optimizations"
334
- ],
335
- "unlocked_by": "sieve",
336
- "uuid": "a0a703b2-244b-4739-b318-b837618b1047"
352
+ ]
337
353
  },
338
354
  {
355
+ "slug": "robot-simulator",
356
+ "uuid": "e665da31-fda2-4bce-94e9-7d79dffdef14",
339
357
  "core": true,
358
+ "unlocked_by": null,
340
359
  "difficulty": 2,
341
- "slug": "robot-simulator",
342
360
  "topics": [
343
361
  "control_flow_if_statements",
344
362
  "pointers",
345
363
  "strings",
346
364
  "structs",
347
365
  "variable_argument_lists"
348
- ],
349
- "uuid": "e665da31-fda2-4bce-94e9-7d79dffdef14"
366
+ ]
350
367
  },
351
368
  {
369
+ "slug": "pascals-triangle",
370
+ "uuid": "be19352f-1b63-4673-9a2d-e763ee807741",
352
371
  "core": true,
372
+ "unlocked_by": null,
353
373
  "difficulty": 1,
354
- "slug": "pascals-triangle",
355
374
  "topics": [
356
375
  "control_flow_if_else_statements",
357
376
  "mathematics",
358
377
  "memory_management"
359
- ],
360
- "uuid": "be19352f-1b63-4673-9a2d-e763ee807741"
378
+ ]
361
379
  },
362
380
  {
381
+ "slug": "triangle",
382
+ "uuid": "5c6bc8d2-2509-471a-993c-a5bf9d030ca7",
363
383
  "core": false,
384
+ "unlocked_by": "pascals-triangle",
364
385
  "difficulty": 1,
365
- "slug": "triangle",
366
386
  "topics": [
367
387
  "booleans",
368
388
  "control_flow_if_else_statements",
369
389
  "mathematics",
370
390
  "structs"
371
- ],
372
- "unlocked_by": "pascals-triangle",
373
- "uuid": "5c6bc8d2-2509-471a-993c-a5bf9d030ca7"
391
+ ]
374
392
  },
375
393
  {
394
+ "slug": "perfect-numbers",
395
+ "uuid": "a1168a15-d46f-4541-8b58-68bca0c54733",
376
396
  "core": false,
397
+ "unlocked_by": "pascals-triangle",
377
398
  "difficulty": 1,
378
- "slug": "perfect-numbers",
379
399
  "topics": [
380
400
  "control_flow_if_else_statements",
381
401
  "mathematics"
382
- ],
383
- "unlocked_by": "pascals-triangle",
384
- "uuid": "a1168a15-d46f-4541-8b58-68bca0c54733"
402
+ ]
385
403
  },
386
404
  {
405
+ "slug": "collatz-conjecture",
406
+ "uuid": "5a47f8a5-36a1-4479-bb77-ef5fbab4bae0",
387
407
  "core": false,
408
+ "unlocked_by": "pascals-triangle",
388
409
  "difficulty": 2,
389
- "slug": "collatz-conjecture",
390
410
  "topics": [
391
411
  "functions",
392
412
  "mathematics"
393
- ],
394
- "unlocked_by": "pascals-triangle",
395
- "uuid": "5a47f8a5-36a1-4479-bb77-ef5fbab4bae0"
413
+ ]
396
414
  },
397
415
  {
416
+ "slug": "binary",
417
+ "uuid": "8621177c-1068-4610-bf5b-26cf23340ae6",
398
418
  "core": true,
419
+ "unlocked_by": null,
399
420
  "difficulty": 1,
400
- "slug": "binary",
401
421
  "topics": [
402
422
  "control_flow_if_statements",
403
423
  "control_flow_loops"
404
- ],
405
- "uuid": "8621177c-1068-4610-bf5b-26cf23340ae6"
424
+ ]
406
425
  },
407
426
  {
427
+ "slug": "all-your-base",
428
+ "uuid": "e3574f75-89cb-4dda-8fce-14ce3141b595",
408
429
  "core": false,
430
+ "unlocked_by": "binary",
409
431
  "difficulty": 3,
410
- "slug": "all-your-base",
411
432
  "topics": [
412
433
  "arrays",
413
434
  "control_flow_if_else_statements",
414
435
  "control_flow_loops"
415
- ],
416
- "unlocked_by": "binary",
417
- "uuid": "e3574f75-89cb-4dda-8fce-14ce3141b595"
436
+ ]
418
437
  },
419
438
  {
439
+ "slug": "palindrome-products",
440
+ "uuid": "8dd43f6c-37ba-42b1-bb85-9ad693e4ce03",
420
441
  "core": true,
442
+ "unlocked_by": null,
421
443
  "difficulty": 2,
422
- "slug": "palindrome-products",
423
444
  "topics": [
424
445
  "functions",
425
446
  "pointers",
426
447
  "strings",
427
448
  "structs"
428
- ],
429
- "uuid": "8dd43f6c-37ba-42b1-bb85-9ad693e4ce03"
449
+ ]
430
450
  },
431
451
  {
452
+ "slug": "sublist",
453
+ "uuid": "a19acc6f-2530-434d-9c98-2d8d4ca635d3",
432
454
  "core": false,
455
+ "unlocked_by": "palindrome-products",
433
456
  "difficulty": 4,
434
- "slug": "sublist",
435
457
  "topics": [
436
- "pointers",
437
458
  "arrays",
438
- "searching",
439
459
  "control_flow_if_statements",
440
- "control_flow_loops"
441
- ],
442
- "unlocked_by": "palindrome-products",
443
- "uuid": "a19acc6f-2530-434d-9c98-2d8d4ca635d3"
460
+ "control_flow_loops",
461
+ "pointers",
462
+ "searching"
463
+ ]
444
464
  },
445
465
  {
466
+ "slug": "largest-series-product",
467
+ "uuid": "4b5974fe-dcff-4542-ad3e-2782201cba1e",
446
468
  "core": false,
469
+ "unlocked_by": "palindrome-products",
447
470
  "difficulty": 5,
448
- "slug": "largest-series-product",
449
471
  "topics": [
450
472
  "control_flow_loops",
451
473
  "performance_optimizations",
452
474
  "strings"
453
- ],
454
- "unlocked_by": "palindrome-products",
455
- "uuid": "4b5974fe-dcff-4542-ad3e-2782201cba1e"
475
+ ]
456
476
  },
457
477
  {
478
+ "slug": "scrabble-score",
479
+ "uuid": "8c631290-13b7-4d25-9ee7-ced2e534deb4",
458
480
  "core": true,
481
+ "unlocked_by": null,
459
482
  "difficulty": 4,
460
- "slug": "scrabble-score",
461
483
  "topics": [
462
484
  "pointers",
463
485
  "searching",
464
486
  "strings",
465
487
  "structs"
466
- ],
467
- "uuid": "8c631290-13b7-4d25-9ee7-ced2e534deb4"
488
+ ]
468
489
  },
469
490
  {
491
+ "slug": "queen-attack",
492
+ "uuid": "b0a152e9-5a45-41f9-bda0-427111d9a56c",
470
493
  "core": true,
494
+ "unlocked_by": null,
471
495
  "difficulty": 1,
472
- "slug": "queen-attack",
473
496
  "topics": [
474
497
  "control_flow_if_statements",
498
+ "enums",
475
499
  "functions",
476
- "structs",
477
- "enums"
478
- ],
479
- "uuid": "b0a152e9-5a45-41f9-bda0-427111d9a56c"
500
+ "structs"
501
+ ]
480
502
  },
481
503
  {
504
+ "slug": "complex-numbers",
505
+ "uuid": "472b1a6b-2b7a-4609-a97d-4c2b6c941a1f",
482
506
  "core": false,
507
+ "unlocked_by": "difference-of-squares",
483
508
  "difficulty": 2,
484
- "slug": "complex-numbers",
485
509
  "topics": [
486
- "structs",
487
- "performance_optimizations"
488
- ],
489
- "unlocked_by": "difference-of-squares",
490
- "uuid": "472b1a6b-2b7a-4609-a97d-4c2b6c941a1f"
510
+ "performance_optimizations",
511
+ "structs"
512
+ ]
491
513
  },
492
514
  {
515
+ "slug": "etl",
516
+ "uuid": "9b6faac9-10dd-46ff-9d29-7242e74f5c06",
493
517
  "core": false,
518
+ "unlocked_by": "scrabble-score",
494
519
  "difficulty": 2,
495
- "slug": "etl",
496
520
  "topics": [
497
- "structs",
498
- "pointers"
499
- ],
500
- "unlocked_by": "scrabble-score",
501
- "uuid": "9b6faac9-10dd-46ff-9d29-7242e74f5c06"
521
+ "pointers",
522
+ "structs"
523
+ ]
502
524
  },
503
525
  {
526
+ "slug": "prime-factors",
527
+ "uuid": "f34db12c-7acc-4287-92a6-c077938512d7",
504
528
  "core": false,
529
+ "unlocked_by": "sieve",
505
530
  "difficulty": 2,
506
- "slug": "prime-factors",
507
531
  "topics": [
508
532
  "algorithms"
509
- ],
510
- "unlocked_by": "sieve",
511
- "uuid": "f34db12c-7acc-4287-92a6-c077938512d7"
533
+ ]
512
534
  },
513
535
  {
536
+ "slug": "luhn",
537
+ "uuid": "8c0762e6-702e-4733-a0a1-65099e2a46f7",
514
538
  "core": false,
539
+ "unlocked_by": "pascals-triangle",
515
540
  "difficulty": 2,
516
- "slug": "luhn",
517
541
  "topics": [
518
- "strings",
519
- "algorithms"
520
- ],
521
- "unlocked_by": "pascals-triangle",
522
- "uuid": "8c0762e6-702e-4733-a0a1-65099e2a46f7"
542
+ "algorithms",
543
+ "strings"
544
+ ]
523
545
  },
524
546
  {
547
+ "slug": "bracket-push",
548
+ "uuid": "cd573670-54da-4291-ab78-afd5d77fbeac",
525
549
  "core": false,
550
+ "unlocked_by": "isogram",
526
551
  "difficulty": 5,
527
- "slug": "bracket-push",
528
552
  "topics": [
529
553
  "control_flow_if_statements",
530
- "stacks",
531
- "recursion"
532
- ],
533
- "unlocked_by": "isogram",
534
- "uuid": "cd573670-54da-4291-ab78-afd5d77fbeac"
554
+ "recursion",
555
+ "stacks"
556
+ ]
535
557
  },
536
558
  {
559
+ "slug": "say",
560
+ "uuid": "523fa391-08d4-4c4e-95e6-20335cd157a0",
537
561
  "core": false,
562
+ "unlocked_by": "roman-numerals",
538
563
  "difficulty": 6,
539
- "slug": "say",
540
564
  "topics": [
541
565
  "algorithms",
542
- "strings",
543
- "control_flow_if_statements"
544
- ],
545
- "unlocked_by": "roman-numerals",
546
- "uuid": "523fa391-08d4-4c4e-95e6-20335cd157a0"
566
+ "control_flow_if_statements",
567
+ "strings"
568
+ ]
547
569
  },
548
570
  {
571
+ "slug": "crypto-square",
572
+ "uuid": "23c2a169-eea2-4636-af62-4a77a4dc3d7b",
549
573
  "core": false,
574
+ "unlocked_by": "atbash-cipher",
550
575
  "difficulty": 6,
551
- "slug": "crypto-square",
552
576
  "topics": [
553
577
  "algorithms",
554
- "strings",
555
- "control_flow_if_statements"
556
- ],
557
- "unlocked_by": "atbash-cipher",
558
- "uuid": "23c2a169-eea2-4636-af62-4a77a4dc3d7b"
578
+ "control_flow_if_statements",
579
+ "strings"
580
+ ]
559
581
  },
560
582
  {
583
+ "slug": "secret-handshake",
584
+ "uuid": "119c20a6-849f-412e-b0a6-113a2cedc72d",
561
585
  "core": false,
586
+ "unlocked_by": "hamming",
562
587
  "difficulty": 3,
563
- "slug": "secret-handshake",
564
588
  "topics": [
565
589
  "algorithms",
566
- "strings",
567
- "control_flow_if_statements"
568
- ],
569
- "unlocked_by": "hamming",
570
- "uuid": "119c20a6-849f-412e-b0a6-113a2cedc72d"
571
- },
572
- {
590
+ "control_flow_if_statements",
591
+ "strings"
592
+ ]
593
+ },
594
+ {
595
+ "slug": "pig-latin",
596
+ "uuid": "62f539e7-f682-412d-bf86-38503e7cebca",
573
597
  "core": false,
598
+ "unlocked_by": "hamming",
574
599
  "difficulty": 4,
575
- "slug": "pig-latin",
576
600
  "topics": [
577
601
  "algorithms",
602
+ "control_flow_if_statements",
578
603
  "functions",
579
- "strings",
580
- "control_flow_if_statements"
581
- ],
582
- "unlocked_by": "hamming",
583
- "uuid": "62f539e7-f682-412d-bf86-38503e7cebca"
604
+ "strings"
605
+ ]
584
606
  },
585
607
  {
608
+ "slug": "minesweeper",
609
+ "uuid": "2e97072f-9e77-4ddd-9d75-6162a927bab1",
586
610
  "core": false,
611
+ "unlocked_by": "scrabble-score",
587
612
  "difficulty": 3,
588
- "slug": "minesweeper",
589
613
  "topics": [
590
- "strings",
591
614
  "arrays",
592
- "control_flow_if_statements"
593
- ],
594
- "unlocked_by": "scrabble-score",
595
- "uuid": "2e97072f-9e77-4ddd-9d75-6162a927bab1"
615
+ "control_flow_if_statements",
616
+ "strings"
617
+ ]
596
618
  },
597
619
  {
620
+ "slug": "run-length-encoding",
621
+ "uuid": "b22152b9-99d1-411c-8cf2-f89e8f5f8141",
598
622
  "core": false,
623
+ "unlocked_by": "atbash-cipher",
599
624
  "difficulty": 4,
600
- "slug": "run-length-encoding",
601
625
  "topics": [
602
626
  "algorithms",
603
- "strings",
604
- "control_flow_if_statements"
605
- ],
606
- "unlocked_by": "atbash-cipher",
607
- "uuid": "b22152b9-99d1-411c-8cf2-f89e8f5f8141"
627
+ "control_flow_if_statements",
628
+ "strings"
629
+ ]
608
630
  },
609
631
  {
632
+ "slug": "two-fer",
633
+ "uuid": "15653c72-5468-415f-9425-6c58d552d346",
610
634
  "core": false,
635
+ "unlocked_by": "beer-song",
611
636
  "difficulty": 1,
612
- "slug": "two-fer",
613
637
  "topics": [
614
- "strings",
615
- "control_flow_if_statements"
616
- ],
617
- "unlocked_by": "beer-song",
618
- "uuid": "15653c72-5468-415f-9425-6c58d552d346"
638
+ "control_flow_if_statements",
639
+ "strings"
640
+ ]
619
641
  },
620
642
  {
643
+ "slug": "wordy",
644
+ "uuid": "c1392944-08fd-45c3-b508-41d682f832d3",
621
645
  "core": false,
646
+ "unlocked_by": "beer-song",
622
647
  "difficulty": 4,
623
- "slug": "wordy",
624
648
  "topics": [
625
649
  "algorithms",
650
+ "control_flow_if_statements",
626
651
  "functions",
627
- "strings",
628
- "control_flow_if_statements"
629
- ],
630
- "unlocked_by": "beer-song",
631
- "uuid": "c1392944-08fd-45c3-b508-41d682f832d3"
652
+ "strings"
653
+ ]
632
654
  },
633
655
  {
656
+ "slug": "binary-search-tree",
657
+ "uuid": "1b33f528-8f29-4582-a268-07be2d1a4516",
634
658
  "core": false,
659
+ "unlocked_by": "binary-search",
635
660
  "difficulty": 6,
636
- "slug": "binary-search-tree",
637
661
  "topics": [
638
- "structs",
639
662
  "arrays",
663
+ "control_flow_loops",
640
664
  "recursion",
641
- "control_flow_loops"
642
- ],
643
- "unlocked_by": "binary-search",
644
- "uuid": "1b33f528-8f29-4582-a268-07be2d1a4516"
665
+ "structs"
666
+ ]
645
667
  },
646
668
  {
647
- "difficulty": 3,
648
669
  "slug": "diamond",
670
+ "uuid": "8605a296-1c67-4723-84ac-3a25d77ed015",
671
+ "core": false,
672
+ "unlocked_by": "scrabble-score",
673
+ "difficulty": 3,
649
674
  "topics": [
650
675
  "arrays",
676
+ "control_flow_if_statements",
651
677
  "functions",
652
- "strings",
653
- "control_flow_if_statements"
654
- ],
655
- "unlocked_by": "scrabble-score",
656
- "uuid": "8605a296-1c67-4723-84ac-3a25d77ed015"
678
+ "strings"
679
+ ]
657
680
  }
658
- ],
659
- "foregone": [],
660
- "language": "C"
681
+ ]
661
682
  }