trackler 2.2.0.2 → 2.2.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (415) hide show
  1. checksums.yaml +4 -4
  2. data/fixtures/deprecation-fixtures/tracks/repo-nope/config.json +2 -0
  3. data/fixtures/deprecation-fixtures/tracks/repo-yepp/config.json +3 -0
  4. data/lib/trackler/track.rb +1 -1
  5. data/lib/trackler/version.rb +1 -1
  6. data/tracks/csharp/config/exercise_readme.go.tmpl +16 -0
  7. data/tracks/csharp/exercises/accumulate/README.md +44 -0
  8. data/tracks/csharp/exercises/acronym/README.md +21 -0
  9. data/tracks/csharp/exercises/all-your-base/README.md +41 -0
  10. data/tracks/csharp/exercises/allergies/README.md +46 -0
  11. data/tracks/csharp/exercises/alphametics/README.md +48 -0
  12. data/tracks/csharp/exercises/anagram/README.md +19 -0
  13. data/tracks/csharp/exercises/atbash-cipher/README.md +40 -0
  14. data/tracks/csharp/exercises/bank-account/README.md +41 -0
  15. data/tracks/csharp/exercises/beer-song/README.md +336 -0
  16. data/tracks/csharp/exercises/binary-search-tree/README.md +66 -0
  17. data/tracks/csharp/exercises/binary-search/README.md +47 -0
  18. data/tracks/csharp/exercises/bob/README.md +24 -0
  19. data/tracks/csharp/exercises/book-store/README.md +80 -0
  20. data/tracks/csharp/exercises/bowling/README.md +59 -0
  21. data/tracks/csharp/exercises/bracket-push/README.md +16 -0
  22. data/tracks/csharp/exercises/change/README.md +29 -0
  23. data/tracks/csharp/exercises/circular-buffer/README.md +56 -0
  24. data/tracks/csharp/exercises/clock/README.md +25 -0
  25. data/tracks/csharp/exercises/connect/README.md +40 -0
  26. data/tracks/csharp/exercises/crypto-square/README.md +80 -0
  27. data/tracks/csharp/exercises/custom-set/README.md +23 -0
  28. data/tracks/csharp/exercises/diamond/README.md +75 -0
  29. data/tracks/csharp/exercises/difference-of-squares/README.md +30 -0
  30. data/tracks/csharp/exercises/diffie-hellman/README.md +55 -0
  31. data/tracks/csharp/exercises/dominoes/README.md +24 -0
  32. data/tracks/csharp/exercises/dot-dsl/README.md +37 -0
  33. data/tracks/csharp/exercises/error-handling/README.md +19 -0
  34. data/tracks/csharp/exercises/etl/README.md +57 -0
  35. data/tracks/csharp/exercises/flatten-array/README.md +24 -0
  36. data/tracks/csharp/exercises/food-chain/README.md +80 -0
  37. data/tracks/csharp/exercises/forth/README.md +39 -0
  38. data/tracks/csharp/exercises/gigasecond/README.md +17 -0
  39. data/tracks/csharp/exercises/go-counting/README.md +43 -0
  40. data/tracks/csharp/exercises/grade-school/README.md +48 -0
  41. data/tracks/csharp/exercises/grains/README.md +40 -0
  42. data/tracks/csharp/exercises/grep/README.md +77 -0
  43. data/tracks/csharp/exercises/hamming/README.md +48 -0
  44. data/tracks/csharp/exercises/hangman/README.md +32 -0
  45. data/tracks/csharp/exercises/hello-world/README.md +27 -0
  46. data/tracks/csharp/exercises/house/README.md +123 -0
  47. data/tracks/csharp/exercises/isogram/README.md +25 -0
  48. data/tracks/csharp/exercises/kindergarten-garden/README.md +72 -0
  49. data/tracks/csharp/exercises/largest-series-product/README.md +26 -0
  50. data/tracks/csharp/exercises/leap/README.md +39 -0
  51. data/tracks/csharp/exercises/ledger/README.md +24 -0
  52. data/tracks/csharp/exercises/linked-list/README.md +40 -0
  53. data/tracks/csharp/exercises/list-ops/README.md +19 -0
  54. data/tracks/csharp/exercises/luhn/README.md +77 -0
  55. data/tracks/csharp/exercises/markdown/README.md +28 -0
  56. data/tracks/csharp/exercises/matrix/README.md +51 -0
  57. data/tracks/csharp/exercises/meetup/README.md +36 -0
  58. data/tracks/csharp/exercises/minesweeper/README.md +36 -0
  59. data/tracks/csharp/exercises/nth-prime/README.md +29 -0
  60. data/tracks/csharp/exercises/nucleotide-count/README.md +43 -0
  61. data/tracks/csharp/exercises/ocr-numbers/README.md +91 -0
  62. data/tracks/csharp/exercises/palindrome-products/README.md +51 -0
  63. data/tracks/csharp/exercises/pangram/README.md +21 -0
  64. data/tracks/csharp/exercises/parallel-letter-frequency/README.md +17 -0
  65. data/tracks/csharp/exercises/pascals-triangle/README.md +27 -0
  66. data/tracks/csharp/exercises/perfect-numbers/README.md +30 -0
  67. data/tracks/csharp/exercises/phone-number/README.md +40 -0
  68. data/tracks/csharp/exercises/pig-latin/README.md +30 -0
  69. data/tracks/csharp/exercises/poker/README.md +18 -0
  70. data/tracks/csharp/exercises/pov/README.md +52 -0
  71. data/tracks/csharp/exercises/prime-factors/README.md +42 -0
  72. data/tracks/csharp/exercises/protein-translation/README.md +55 -0
  73. data/tracks/csharp/exercises/proverb/README.md +28 -0
  74. data/tracks/csharp/exercises/pythagorean-triplet/README.md +30 -0
  75. data/tracks/csharp/exercises/queen-attack/README.md +39 -0
  76. data/tracks/csharp/exercises/rail-fence-cipher/README.md +66 -0
  77. data/tracks/csharp/exercises/raindrops/README.md +30 -0
  78. data/tracks/csharp/exercises/react/README.md +29 -0
  79. data/tracks/csharp/exercises/rectangles/README.md +73 -0
  80. data/tracks/csharp/exercises/rna-transcription/README.md +31 -0
  81. data/tracks/csharp/exercises/robot-name/README.md +28 -0
  82. data/tracks/csharp/exercises/robot-simulator/README.md +40 -0
  83. data/tracks/csharp/exercises/roman-numerals/README.md +59 -0
  84. data/tracks/csharp/exercises/rotational-cipher/README.md +42 -0
  85. data/tracks/csharp/exercises/run-length-encoding/README.md +36 -0
  86. data/tracks/csharp/exercises/saddle-points/README.md +44 -0
  87. data/tracks/csharp/exercises/say/README.md +75 -0
  88. data/tracks/csharp/exercises/scale-generator/README.md +66 -0
  89. data/tracks/csharp/exercises/scrabble-score/README.md +50 -0
  90. data/tracks/csharp/exercises/secret-handshake/README.md +41 -0
  91. data/tracks/csharp/exercises/series/README.md +33 -0
  92. data/tracks/csharp/exercises/sgf-parsing/README.md +78 -0
  93. data/tracks/csharp/exercises/sieve/README.md +40 -0
  94. data/tracks/csharp/exercises/simple-cipher/README.md +96 -0
  95. data/tracks/csharp/exercises/simple-linked-list/README.md +38 -0
  96. data/tracks/csharp/exercises/space-age/README.md +30 -0
  97. data/tracks/csharp/exercises/strain/README.md +46 -0
  98. data/tracks/csharp/exercises/sublist/README.md +32 -0
  99. data/tracks/csharp/exercises/sum-of-multiples/README.md +28 -0
  100. data/tracks/csharp/exercises/tournament/README.md +74 -0
  101. data/tracks/csharp/exercises/transpose/README.md +71 -0
  102. data/tracks/csharp/exercises/tree-building/README.md +36 -0
  103. data/tracks/csharp/exercises/triangle/README.md +32 -0
  104. data/tracks/csharp/exercises/twelve-days/README.md +45 -0
  105. data/tracks/csharp/exercises/two-bucket/README.md +42 -0
  106. data/tracks/csharp/exercises/variable-length-quantity/README.md +50 -0
  107. data/tracks/csharp/exercises/word-count/README.md +25 -0
  108. data/tracks/csharp/exercises/word-search/README.md +43 -0
  109. data/tracks/csharp/exercises/wordy/README.md +73 -0
  110. data/tracks/csharp/exercises/zebra-puzzle/README.md +43 -0
  111. data/tracks/csharp/exercises/zipper/README.md +41 -0
  112. data/tracks/dart/config/exercise_readme.go.tmpl +16 -0
  113. data/tracks/dart/exercises/bob/README.md +18 -0
  114. data/tracks/dart/exercises/difference-of-squares/README.md +19 -0
  115. data/tracks/dart/exercises/gigasecond/README.md +11 -0
  116. data/tracks/dart/exercises/hamming/README.md +42 -0
  117. data/tracks/dart/exercises/hello-world/README.md +21 -0
  118. data/tracks/dart/exercises/leap/README.md +33 -0
  119. data/tracks/dart/exercises/rna-transcription/README.md +25 -0
  120. data/tracks/delphi/config.json +25 -32
  121. data/tracks/elixir/config.json +255 -3
  122. data/tracks/elixir/config/exercise_readme.go.tmpl +16 -0
  123. data/tracks/elixir/exercises/accumulate/README.md +72 -0
  124. data/tracks/elixir/exercises/acronym/README.md +52 -0
  125. data/tracks/elixir/exercises/all-your-base/README.md +72 -0
  126. data/tracks/elixir/exercises/allergies/README.md +74 -0
  127. data/tracks/elixir/exercises/anagram/README.md +50 -0
  128. data/tracks/elixir/exercises/atbash-cipher/README.md +71 -0
  129. data/tracks/elixir/exercises/bank-account/README.md +67 -0
  130. data/tracks/elixir/exercises/beer-song/README.md +364 -0
  131. data/tracks/elixir/exercises/binary-search/README.md +78 -0
  132. data/tracks/elixir/exercises/binary/README.md +72 -0
  133. data/tracks/elixir/exercises/bob/README.md +55 -0
  134. data/tracks/elixir/exercises/bowling/README.md +90 -0
  135. data/tracks/elixir/exercises/bowling/bowling_test.exs +91 -18
  136. data/tracks/elixir/exercises/bowling/example.exs +4 -4
  137. data/tracks/elixir/exercises/bracket-push/README.md +47 -0
  138. data/tracks/elixir/exercises/change/README.md +60 -0
  139. data/tracks/elixir/exercises/clock/README.md +50 -0
  140. data/tracks/elixir/exercises/collatz-conjecture/README.md +70 -0
  141. data/tracks/elixir/exercises/connect/README.md +71 -0
  142. data/tracks/elixir/exercises/crypto-square/README.md +111 -0
  143. data/tracks/elixir/exercises/custom-set/README.md +48 -0
  144. data/tracks/elixir/exercises/diamond/README.md +96 -0
  145. data/tracks/elixir/exercises/difference-of-squares/README.md +56 -0
  146. data/tracks/elixir/exercises/diffie-hellman/README.md +93 -0
  147. data/tracks/elixir/exercises/dominoes/README.md +55 -0
  148. data/tracks/elixir/exercises/dot-dsl/README.md +65 -0
  149. data/tracks/elixir/exercises/etl/README.md +88 -0
  150. data/tracks/elixir/exercises/flatten-array/README.md +55 -0
  151. data/tracks/elixir/exercises/forth/README.md +66 -0
  152. data/tracks/elixir/exercises/gigasecond/README.md +48 -0
  153. data/tracks/elixir/exercises/grade-school/README.md +79 -0
  154. data/tracks/elixir/exercises/grains/README.md +71 -0
  155. data/tracks/elixir/exercises/grep/README.md +108 -0
  156. data/tracks/elixir/exercises/hamming/README.md +79 -0
  157. data/tracks/elixir/exercises/hello-world/README.md +58 -0
  158. data/tracks/elixir/exercises/hexadecimal/README.md +51 -0
  159. data/tracks/elixir/exercises/isogram/README.md +56 -0
  160. data/tracks/elixir/exercises/kindergarten-garden/README.md +103 -0
  161. data/tracks/elixir/exercises/largest-series-product/README.md +57 -0
  162. data/tracks/elixir/exercises/leap/README.md +70 -0
  163. data/tracks/elixir/exercises/list-ops/README.md +47 -0
  164. data/tracks/elixir/exercises/luhn/README.md +108 -0
  165. data/tracks/elixir/exercises/markdown/README.md +55 -0
  166. data/tracks/elixir/exercises/matrix/README.md +82 -0
  167. data/tracks/elixir/exercises/meetup/README.md +67 -0
  168. data/tracks/elixir/exercises/minesweeper/README.md +67 -0
  169. data/tracks/elixir/exercises/nth-prime/README.md +52 -0
  170. data/tracks/elixir/exercises/nucleotide-count/README.md +70 -0
  171. data/tracks/elixir/exercises/ocr-numbers/README.md +122 -0
  172. data/tracks/elixir/exercises/palindrome-products/README.md +77 -0
  173. data/tracks/elixir/exercises/pangram/README.md +52 -0
  174. data/tracks/elixir/exercises/parallel-letter-frequency/README.md +48 -0
  175. data/tracks/elixir/exercises/pascals-triangle/README.md +58 -0
  176. data/tracks/elixir/exercises/perfect-numbers/README.md +61 -0
  177. data/tracks/elixir/exercises/phone-number/README.md +71 -0
  178. data/tracks/elixir/exercises/pig-latin/README.md +61 -0
  179. data/tracks/elixir/exercises/poker/README.md +49 -0
  180. data/tracks/elixir/exercises/prime-factors/README.md +73 -0
  181. data/tracks/elixir/exercises/protein-translation/README.md +86 -0
  182. data/tracks/elixir/exercises/pythagorean-triplet/README.md +61 -0
  183. data/tracks/elixir/exercises/queen-attack/README.md +70 -0
  184. data/tracks/elixir/exercises/rail-fence-cipher/README.md +97 -0
  185. data/tracks/elixir/exercises/raindrops/README.md +61 -0
  186. data/tracks/elixir/exercises/rna-transcription/README.md +62 -0
  187. data/tracks/elixir/exercises/robot-simulator/README.md +71 -0
  188. data/tracks/elixir/exercises/roman-numerals/README.md +86 -0
  189. data/tracks/elixir/exercises/rotational-cipher/README.md +73 -0
  190. data/tracks/elixir/exercises/run-length-encoding/README.md +67 -0
  191. data/tracks/elixir/exercises/saddle-points/README.md +70 -0
  192. data/tracks/elixir/exercises/say/README.md +106 -0
  193. data/tracks/elixir/exercises/scale-generator/README.md +97 -0
  194. data/tracks/elixir/exercises/scrabble-score/README.md +81 -0
  195. data/tracks/elixir/exercises/secret-handshake/README.md +94 -0
  196. data/tracks/elixir/exercises/series/README.md +64 -0
  197. data/tracks/elixir/exercises/sieve/README.md +71 -0
  198. data/tracks/elixir/exercises/simple-cipher/README.md +127 -0
  199. data/tracks/elixir/exercises/simple-linked-list/README.md +65 -0
  200. data/tracks/elixir/exercises/space-age/README.md +61 -0
  201. data/tracks/elixir/exercises/strain/README.md +80 -0
  202. data/tracks/elixir/exercises/sublist/README.md +58 -0
  203. data/tracks/elixir/exercises/sum-of-multiples/README.md +55 -0
  204. data/tracks/elixir/exercises/tournament/README.md +110 -0
  205. data/tracks/elixir/exercises/triangle/README.md +63 -0
  206. data/tracks/elixir/exercises/twelve-days/README.md +72 -0
  207. data/tracks/elixir/exercises/word-count/README.md +56 -0
  208. data/tracks/elixir/exercises/wordy/README.md +100 -0
  209. data/tracks/elixir/exercises/zipper/README.md +68 -0
  210. data/tracks/fsharp/config/exercise_readme.go.tmpl +16 -0
  211. data/tracks/fsharp/exercises/accumulate/README.md +40 -0
  212. data/tracks/fsharp/exercises/acronym/README.md +15 -0
  213. data/tracks/fsharp/exercises/all-your-base/README.md +35 -0
  214. data/tracks/fsharp/exercises/allergies/README.md +37 -0
  215. data/tracks/fsharp/exercises/alphametics/README.md +41 -0
  216. data/tracks/fsharp/exercises/anagram/README.md +13 -0
  217. data/tracks/fsharp/exercises/atbash-cipher/README.md +34 -0
  218. data/tracks/fsharp/exercises/bank-account/README.md +30 -0
  219. data/tracks/fsharp/exercises/beer-song/README.md +331 -0
  220. data/tracks/fsharp/exercises/binary-search-tree/README.md +60 -0
  221. data/tracks/fsharp/exercises/binary-search/README.md +41 -0
  222. data/tracks/fsharp/exercises/bob/README.md +18 -0
  223. data/tracks/fsharp/exercises/book-store/README.md +74 -0
  224. data/tracks/fsharp/exercises/bowling/README.md +53 -0
  225. data/tracks/fsharp/exercises/bracket-push/README.md +10 -0
  226. data/tracks/fsharp/exercises/change/README.md +23 -0
  227. data/tracks/fsharp/exercises/circular-buffer/README.md +50 -0
  228. data/tracks/fsharp/exercises/clock/README.md +13 -0
  229. data/tracks/fsharp/exercises/connect/README.md +34 -0
  230. data/tracks/fsharp/exercises/crypto-square/README.md +74 -0
  231. data/tracks/fsharp/exercises/custom-set/README.md +11 -0
  232. data/tracks/fsharp/exercises/diamond/README.md +62 -0
  233. data/tracks/fsharp/exercises/difference-of-squares/README.md +25 -0
  234. data/tracks/fsharp/exercises/diffie-hellman/README.md +49 -0
  235. data/tracks/fsharp/exercises/dominoes/README.md +18 -0
  236. data/tracks/fsharp/exercises/dot-dsl/README.md +28 -0
  237. data/tracks/fsharp/exercises/error-handling/README.md +13 -0
  238. data/tracks/fsharp/exercises/etl/README.md +51 -0
  239. data/tracks/fsharp/exercises/food-chain/README.md +74 -0
  240. data/tracks/fsharp/exercises/forth/README.md +29 -0
  241. data/tracks/fsharp/exercises/gigasecond/README.md +15 -0
  242. data/tracks/fsharp/exercises/go-counting/README.md +37 -0
  243. data/tracks/fsharp/exercises/grade-school/README.md +47 -0
  244. data/tracks/fsharp/exercises/grains/README.md +39 -0
  245. data/tracks/fsharp/exercises/grep/README.md +71 -0
  246. data/tracks/fsharp/exercises/hamming/README.md +42 -0
  247. data/tracks/fsharp/exercises/hangman/README.md +21 -0
  248. data/tracks/fsharp/exercises/hello-world/README.md +21 -0
  249. data/tracks/fsharp/exercises/house/README.md +117 -0
  250. data/tracks/fsharp/exercises/isogram/README.md +19 -0
  251. data/tracks/fsharp/exercises/kindergarten-garden/README.md +66 -0
  252. data/tracks/fsharp/exercises/largest-series-product/README.md +20 -0
  253. data/tracks/fsharp/exercises/leap/README.md +33 -0
  254. data/tracks/fsharp/exercises/ledger/README.md +18 -0
  255. data/tracks/fsharp/exercises/lens-person/README.md +15 -0
  256. data/tracks/fsharp/exercises/linked-list/README.md +50 -0
  257. data/tracks/fsharp/exercises/list-ops/README.md +10 -0
  258. data/tracks/fsharp/exercises/luhn/README.md +71 -0
  259. data/tracks/fsharp/exercises/markdown/README.md +18 -0
  260. data/tracks/fsharp/exercises/matrix/README.md +45 -0
  261. data/tracks/fsharp/exercises/meetup/README.md +30 -0
  262. data/tracks/fsharp/exercises/minesweeper/README.md +30 -0
  263. data/tracks/fsharp/exercises/nth-prime/README.md +21 -0
  264. data/tracks/fsharp/exercises/nucleotide-count/README.md +33 -0
  265. data/tracks/fsharp/exercises/ocr-numbers/README.md +85 -0
  266. data/tracks/fsharp/exercises/palindrome-products/README.md +44 -0
  267. data/tracks/fsharp/exercises/pangram/README.md +15 -0
  268. data/tracks/fsharp/exercises/parallel-letter-frequency/README.md +15 -0
  269. data/tracks/fsharp/exercises/pascals-triangle/README.md +21 -0
  270. data/tracks/fsharp/exercises/perfect-numbers/README.md +24 -0
  271. data/tracks/fsharp/exercises/phone-number/README.md +34 -0
  272. data/tracks/fsharp/exercises/pig-latin/README.md +24 -0
  273. data/tracks/fsharp/exercises/poker/README.md +15 -0
  274. data/tracks/fsharp/exercises/pov/README.md +46 -0
  275. data/tracks/fsharp/exercises/prime-factors/README.md +36 -0
  276. data/tracks/fsharp/exercises/protein-translation/README.md +49 -0
  277. data/tracks/fsharp/exercises/proverb/README.md +22 -0
  278. data/tracks/fsharp/exercises/pythagorean-triplet/README.md +24 -0
  279. data/tracks/fsharp/exercises/queen-attack/README.md +33 -0
  280. data/tracks/fsharp/exercises/rail-fence-cipher/README.md +60 -0
  281. data/tracks/fsharp/exercises/raindrops/README.md +27 -0
  282. data/tracks/fsharp/exercises/react/README.md +19 -0
  283. data/tracks/fsharp/exercises/rectangles/README.md +67 -0
  284. data/tracks/fsharp/exercises/rna-transcription/README.md +29 -0
  285. data/tracks/fsharp/exercises/robot-name/README.md +22 -0
  286. data/tracks/fsharp/exercises/robot-simulator/README.md +34 -0
  287. data/tracks/fsharp/exercises/roman-numerals/README.md +49 -0
  288. data/tracks/fsharp/exercises/run-length-encoding/README.md +30 -0
  289. data/tracks/fsharp/exercises/saddle-points/README.md +33 -0
  290. data/tracks/fsharp/exercises/say/README.md +69 -0
  291. data/tracks/fsharp/exercises/scale-generator/README.md +60 -0
  292. data/tracks/fsharp/exercises/scrabble-score/README.md +44 -0
  293. data/tracks/fsharp/exercises/secret-handshake/README.md +35 -0
  294. data/tracks/fsharp/exercises/series/README.md +27 -0
  295. data/tracks/fsharp/exercises/sgf-parsing/README.md +68 -0
  296. data/tracks/fsharp/exercises/sieve/README.md +34 -0
  297. data/tracks/fsharp/exercises/simple-cipher/README.md +90 -0
  298. data/tracks/fsharp/exercises/simple-linked-list/README.md +28 -0
  299. data/tracks/fsharp/exercises/space-age/README.md +28 -0
  300. data/tracks/fsharp/exercises/strain/README.md +40 -0
  301. data/tracks/fsharp/exercises/sublist/README.md +21 -0
  302. data/tracks/fsharp/exercises/sum-of-multiples/README.md +18 -0
  303. data/tracks/fsharp/exercises/tournament/README.md +68 -0
  304. data/tracks/fsharp/exercises/transpose/README.md +65 -0
  305. data/tracks/fsharp/exercises/tree-building/README.md +30 -0
  306. data/tracks/fsharp/exercises/triangle/README.md +26 -0
  307. data/tracks/fsharp/exercises/twelve-days/README.md +39 -0
  308. data/tracks/fsharp/exercises/two-bucket/README.md +36 -0
  309. data/tracks/fsharp/exercises/variable-length-quantity/README.md +39 -0
  310. data/tracks/fsharp/exercises/word-count/README.md +19 -0
  311. data/tracks/fsharp/exercises/word-search/README.md +30 -0
  312. data/tracks/fsharp/exercises/wordy/README.md +68 -0
  313. data/tracks/fsharp/exercises/zebra-puzzle/README.md +32 -0
  314. data/tracks/fsharp/exercises/zipper/README.md +31 -0
  315. data/tracks/haskell/README.md +2 -2
  316. data/tracks/javascript/config.json +232 -4
  317. data/tracks/kotlin/config.json +8 -1
  318. data/tracks/kotlin/exercises/rotational-cipher/build.gradle +28 -0
  319. data/tracks/kotlin/exercises/rotational-cipher/src/example/kotlin/RotationalCipher.kt +18 -0
  320. data/tracks/kotlin/exercises/rotational-cipher/src/main/kotlin/.keep +0 -0
  321. data/tracks/kotlin/exercises/rotational-cipher/src/test/kotlin/RotationalCipherTest.kt +81 -0
  322. data/tracks/kotlin/exercises/settings.gradle +1 -0
  323. data/tracks/powershell/config/exercise_readme.go.tmpl +16 -0
  324. data/tracks/powershell/exercises/hamming/README.md +42 -0
  325. data/tracks/powershell/exercises/hello-world/README.md +21 -0
  326. data/tracks/purescript/README.md +4 -4
  327. data/tracks/scala/config.json +266 -6
  328. data/tracks/scala/config/exercise_readme.go.tmpl +16 -0
  329. data/tracks/scala/exercises/accumulate/README.md +46 -0
  330. data/tracks/scala/exercises/acronym/README.md +26 -0
  331. data/tracks/scala/exercises/all-your-base/README.md +46 -0
  332. data/tracks/scala/exercises/allergies/README.md +48 -0
  333. data/tracks/scala/exercises/alphametics/README.md +46 -0
  334. data/tracks/scala/exercises/anagram/README.md +24 -0
  335. data/tracks/scala/exercises/atbash-cipher/README.md +45 -0
  336. data/tracks/scala/exercises/bank-account/README.md +54 -0
  337. data/tracks/scala/exercises/beer-song/README.md +338 -0
  338. data/tracks/scala/exercises/binary-search-tree/README.md +71 -0
  339. data/tracks/scala/exercises/binary-search/README.md +52 -0
  340. data/tracks/scala/exercises/binary/README.md +46 -0
  341. data/tracks/scala/exercises/bob/README.md +29 -0
  342. data/tracks/scala/exercises/book-store/README.md +85 -0
  343. data/tracks/scala/exercises/bowling/README.md +64 -0
  344. data/tracks/scala/exercises/bracket-push/README.md +21 -0
  345. data/tracks/scala/exercises/change/README.md +34 -0
  346. data/tracks/scala/exercises/clock/README.md +24 -0
  347. data/tracks/scala/exercises/connect/README.md +53 -0
  348. data/tracks/scala/exercises/crypto-square/README.md +85 -0
  349. data/tracks/scala/exercises/custom-set/README.md +22 -0
  350. data/tracks/scala/exercises/difference-of-squares/README.md +30 -0
  351. data/tracks/scala/exercises/dominoes/README.md +29 -0
  352. data/tracks/scala/exercises/etl/README.md +62 -0
  353. data/tracks/scala/exercises/food-chain/README.md +81 -0
  354. data/tracks/scala/exercises/forth/README.md +40 -0
  355. data/tracks/scala/exercises/gigasecond/README.md +26 -0
  356. data/tracks/scala/exercises/grade-school/README.md +53 -0
  357. data/tracks/scala/exercises/grains/README.md +45 -0
  358. data/tracks/scala/exercises/hamming/README.md +112 -0
  359. data/tracks/scala/exercises/hello-world/README.md +38 -0
  360. data/tracks/scala/exercises/hexadecimal/README.md +25 -0
  361. data/tracks/scala/exercises/house/README.md +124 -0
  362. data/tracks/scala/exercises/isogram/README.md +30 -0
  363. data/tracks/scala/exercises/kindergarten-garden/README.md +77 -0
  364. data/tracks/scala/exercises/largest-series-product/README.md +31 -0
  365. data/tracks/scala/exercises/leap/README.md +50 -0
  366. data/tracks/scala/exercises/lens-person/README.md +11 -7
  367. data/tracks/scala/exercises/linked-list/README.md +45 -0
  368. data/tracks/scala/exercises/luhn/README.md +82 -0
  369. data/tracks/scala/exercises/matrix/README.md +56 -0
  370. data/tracks/scala/exercises/meetup/README.md +41 -0
  371. data/tracks/scala/exercises/minesweeper/README.md +41 -0
  372. data/tracks/scala/exercises/nth-prime/README.md +26 -0
  373. data/tracks/scala/exercises/nucleotide-count/README.md +107 -0
  374. data/tracks/scala/exercises/ocr-numbers/README.md +96 -0
  375. data/tracks/scala/exercises/octal/README.md +60 -0
  376. data/tracks/scala/exercises/palindrome-products/README.md +51 -0
  377. data/tracks/scala/exercises/pangram/README.md +26 -0
  378. data/tracks/scala/exercises/parallel-letter-frequency/README.md +50 -0
  379. data/tracks/scala/exercises/pascals-triangle/README.md +32 -0
  380. data/tracks/scala/exercises/perfect-numbers/README.md +35 -0
  381. data/tracks/scala/exercises/phone-number/README.md +56 -0
  382. data/tracks/scala/exercises/pig-latin/README.md +35 -0
  383. data/tracks/scala/exercises/prime-factors/README.md +47 -0
  384. data/tracks/scala/exercises/protein-translation/README.md +60 -0
  385. data/tracks/scala/exercises/pythagorean-triplet/README.md +35 -0
  386. data/tracks/scala/exercises/queen-attack/README.md +44 -0
  387. data/tracks/scala/exercises/rail-fence-cipher/README.md +71 -0
  388. data/tracks/scala/exercises/raindrops/README.md +35 -0
  389. data/tracks/scala/exercises/rna-transcription/README.md +36 -0
  390. data/tracks/scala/exercises/robot-name/README.md +40 -0
  391. data/tracks/scala/exercises/robot-simulator/README.md +45 -0
  392. data/tracks/scala/exercises/roman-numerals/README.md +72 -0
  393. data/tracks/scala/exercises/run-length-encoding/README.md +41 -0
  394. data/tracks/scala/exercises/saddle-points/README.md +44 -0
  395. data/tracks/scala/exercises/say/README.md +80 -0
  396. data/tracks/scala/exercises/scrabble-score/README.md +55 -0
  397. data/tracks/scala/exercises/secret-handshake/README.md +46 -0
  398. data/tracks/scala/exercises/series/README.md +38 -0
  399. data/tracks/scala/exercises/sgf-parsing/README.md +79 -0
  400. data/tracks/scala/exercises/sieve/README.md +45 -0
  401. data/tracks/scala/exercises/simple-cipher/README.md +101 -0
  402. data/tracks/scala/exercises/simple-linked-list/README.md +39 -0
  403. data/tracks/scala/exercises/space-age/README.md +35 -0
  404. data/tracks/scala/exercises/spiral-matrix/README.md +41 -0
  405. data/tracks/scala/exercises/strain/README.md +51 -0
  406. data/tracks/scala/exercises/sublist/README.md +32 -0
  407. data/tracks/scala/exercises/sum-of-multiples/README.md +29 -0
  408. data/tracks/scala/exercises/triangle/README.md +37 -0
  409. data/tracks/scala/exercises/trinary/README.md +39 -0
  410. data/tracks/scala/exercises/variable-length-quantity/README.md +54 -0
  411. data/tracks/scala/exercises/word-count/README.md +30 -0
  412. data/tracks/scala/exercises/wordy/README.md +74 -0
  413. data/tracks/scala/exercises/zebra-puzzle/README.md +43 -0
  414. data/tracks/scala/exercises/zipper/README.md +42 -0
  415. metadata +401 -1
@@ -0,0 +1,31 @@
1
+ # Zipper
2
+
3
+ Creating a zipper for a binary tree.
4
+
5
+ [Zippers](https://en.wikipedia.org/wiki/Zipper_%28data_structure%29) are
6
+ a way purely functional of navigating within a data structure and
7
+ manipulating it. They essentially contain a data structure and a
8
+ pointer into that data structure (called the focus).
9
+
10
+ For example given a rose tree (where each node contains a value and a
11
+ list of child nodes) a zipper might support these operations:
12
+
13
+ - `from_tree` (get a zipper out of a rose tree, the focus is on the root node)
14
+ - `to_tree` (get the rose tree out of the zipper)
15
+ - `value` (get the value of the focus node)
16
+ - `prev` (move the focus to the previous child of the same parent,
17
+ returns a new zipper)
18
+ - `next` (move the focus to the next child of the same parent, returns a
19
+ new zipper)
20
+ - `up` (move the focus to the parent, returns a new zipper)
21
+ - `set_value` (set the value of the focus node, returns a new zipper)
22
+ - `insert_before` (insert a new subtree before the focus node, it
23
+ becomes the `prev` of the focus node, returns a new zipper)
24
+ - `insert_after` (insert a new subtree after the focus node, it becomes
25
+ the `next` of the focus node, returns a new zipper)
26
+ - `delete` (removes the focus node and all subtrees, focus moves to the
27
+ `next` node if possible otherwise to the `prev` node if possible,
28
+ otherwise to the parent node, returns a new zipper)
29
+
30
+ ## Submitting Incomplete Solutions
31
+ It's possible to submit an incomplete solution so you can see how others have completed the exercise.
@@ -54,11 +54,11 @@ Of course you can also add a totally new exercise, but it might be a good idea t
54
54
 
55
55
  #### Updating an exercise test suite
56
56
  Updating a test suite of an existing exercise is special because it usually affects all languages.
57
- You can refer to the [documentation on updating a test suite](https://github.com/exercism/x-common/blob/master/CONTRIBUTING.md#updating-an-exercise-test-suite).
57
+ You can refer to the [documentation on updating a test suite](https://github.com/exercism/docs/blob/master/contributing-to-language-tracks/README.md#changing-exercise-test-suites) and the [test suite principles](https://github.com/exercism/docs/blob/master/language-tracks/exercises/anatomy/test-suites.md).
58
58
  Note that the whole test suite must run with the sample solution within a couple of seconds.
59
59
 
60
60
  ### Repository structure and conventions
61
- The [track anatomy documentation](https://github.com/exercism/x-common/blob/master/CONTRIBUTING.md#track-anatomy) is a general description of all the files and directories that are not explicitly described below.
61
+ The [track anatomy documentation](https://github.com/exercism/docs/blob/master/language-tracks/README.md) is a general description of all the files and directories that are not explicitly described below.
62
62
 
63
63
  #### Directory structure
64
64
  ```bash
@@ -6,7 +6,10 @@
6
6
  "test_pattern": ".*[.]spec[.]js$",
7
7
  "exercises": [
8
8
  {
9
+ "uuid": "4756cfc9-7509-4783-8be7-60e3376b8256",
9
10
  "slug": "hello-world",
11
+ "core": false,
12
+ "unlocked_by": null,
10
13
  "difficulty": 1,
11
14
  "topics": [
12
15
  "Control-flow (conditionals)",
@@ -16,7 +19,10 @@
16
19
  ]
17
20
  },
18
21
  {
22
+ "uuid": "0c231a1c-55f7-47b6-8a54-ccae4ab0c65b",
19
23
  "slug": "leap",
24
+ "core": false,
25
+ "unlocked_by": null,
20
26
  "difficulty": 1,
21
27
  "topics": [
22
28
  "Booleans",
@@ -25,7 +31,10 @@
25
31
  ]
26
32
  },
27
33
  {
34
+ "uuid": "3e1358c8-2bea-41f9-bc9e-8277f354a4e0",
28
35
  "slug": "hamming",
36
+ "core": false,
37
+ "unlocked_by": null,
29
38
  "difficulty": 1,
30
39
  "topics": [
31
40
  "Control-flow (loops)",
@@ -35,7 +44,10 @@
35
44
  ]
36
45
  },
37
46
  {
47
+ "uuid": "d7f57ab9-2edb-44cb-a04e-c575c0f4be4c",
38
48
  "slug": "rna-transcription",
49
+ "core": false,
50
+ "unlocked_by": null,
39
51
  "difficulty": 1,
40
52
  "topics": [
41
53
  "Strings",
@@ -43,7 +55,10 @@
43
55
  ]
44
56
  },
45
57
  {
58
+ "uuid": "c57bf909-130f-46e6-97ca-aeed58df1a15",
46
59
  "slug": "pangram",
60
+ "core": false,
61
+ "unlocked_by": null,
47
62
  "difficulty": 1,
48
63
  "topics": [
49
64
  "Control flow (conditionals)",
@@ -56,7 +71,10 @@
56
71
  ]
57
72
  },
58
73
  {
74
+ "uuid": "246be5d9-b361-4893-9707-f218ede2bed6",
59
75
  "slug": "bob",
76
+ "core": false,
77
+ "unlocked_by": null,
60
78
  "difficulty": 1,
61
79
  "topics": [
62
80
  "Control flow (conditionals)",
@@ -68,14 +86,20 @@
68
86
  ]
69
87
  },
70
88
  {
89
+ "uuid": "49e4874b-d7e2-4305-a9bc-627fab4ada44",
71
90
  "slug": "gigasecond",
91
+ "core": false,
92
+ "unlocked_by": null,
72
93
  "difficulty": 1,
73
94
  "topics": [
74
95
  "Time"
75
96
  ]
76
97
  },
77
98
  {
99
+ "uuid": "35821375-5c94-4d4b-aa56-e3b079a45ca0",
78
100
  "slug": "isogram",
101
+ "core": false,
102
+ "unlocked_by": null,
79
103
  "difficulty": 1,
80
104
  "topics": [
81
105
  "Strings",
@@ -83,7 +107,10 @@
83
107
  ]
84
108
  },
85
109
  {
110
+ "uuid": "6f315fc3-095a-4387-aefb-cc5fee97110a",
86
111
  "slug": "beer-song",
112
+ "core": false,
113
+ "unlocked_by": null,
87
114
  "difficulty": 1,
88
115
  "topics": [
89
116
  "Looping",
@@ -92,7 +119,10 @@
92
119
  ]
93
120
  },
94
121
  {
122
+ "uuid": "347f9f54-a0d9-469d-babf-b3edb34d9d70",
95
123
  "slug": "phone-number",
124
+ "core": false,
125
+ "unlocked_by": null,
96
126
  "difficulty": 1,
97
127
  "topics": [
98
128
  "Parsing",
@@ -100,7 +130,10 @@
100
130
  ]
101
131
  },
102
132
  {
133
+ "uuid": "432ec2ce-c919-4142-aea2-389b67503252",
103
134
  "slug": "anagram",
135
+ "core": false,
136
+ "unlocked_by": null,
104
137
  "difficulty": 1,
105
138
  "topics": [
106
139
  "Strings",
@@ -108,7 +141,10 @@
108
141
  ]
109
142
  },
110
143
  {
144
+ "uuid": "a717745f-da00-4a5f-8bf3-6876e20cdf17",
111
145
  "slug": "food-chain",
146
+ "core": false,
147
+ "unlocked_by": null,
112
148
  "difficulty": 1,
113
149
  "topics": [
114
150
  "Text formatting",
@@ -116,63 +152,90 @@
116
152
  ]
117
153
  },
118
154
  {
155
+ "uuid": "029bc3ed-772d-439b-bd0a-1ba1196a79ec",
119
156
  "slug": "grade-school",
157
+ "core": false,
158
+ "unlocked_by": null,
120
159
  "difficulty": 1,
121
160
  "topics": [
122
161
 
123
162
  ]
124
163
  },
125
164
  {
165
+ "uuid": "3005340b-a8d6-46ac-9075-125f9adccc2a",
126
166
  "slug": "robot-name",
167
+ "core": false,
168
+ "unlocked_by": null,
127
169
  "difficulty": 1,
128
170
  "topics": [
129
171
 
130
172
  ]
131
173
  },
132
174
  {
175
+ "uuid": "a2a19f61-62ba-447a-8f57-537c8baa2e7a",
133
176
  "slug": "etl",
177
+ "core": false,
178
+ "unlocked_by": null,
134
179
  "difficulty": 1,
135
180
  "topics": [
136
181
 
137
182
  ]
138
183
  },
139
184
  {
185
+ "uuid": "b668e11a-a8ce-4e94-ba68-3a1f0fa3f6c8",
140
186
  "slug": "space-age",
187
+ "core": false,
188
+ "unlocked_by": null,
141
189
  "difficulty": 1,
142
190
  "topics": [
143
191
 
144
192
  ]
145
193
  },
146
194
  {
195
+ "uuid": "c5be6908-f45c-4278-ba99-3701024f4eda",
147
196
  "slug": "grains",
197
+ "core": false,
198
+ "unlocked_by": null,
148
199
  "difficulty": 1,
149
200
  "topics": [
150
201
 
151
202
  ]
152
203
  },
153
204
  {
205
+ "uuid": "fde792fa-84e9-4b86-8ecb-8466ad92a99d",
154
206
  "slug": "triangle",
207
+ "core": false,
208
+ "unlocked_by": null,
155
209
  "difficulty": 1,
156
210
  "topics": [
157
211
 
158
212
  ]
159
213
  },
160
214
  {
215
+ "uuid": "1ff85150-6c51-4758-af02-4484cf35658e",
161
216
  "slug": "clock",
217
+ "core": false,
218
+ "unlocked_by": null,
162
219
  "difficulty": 1,
163
220
  "topics": [
164
221
 
165
222
  ]
166
223
  },
167
224
  {
225
+ "uuid": "51aa5429-b2db-43ad-83cf-84e2ead22cb6",
168
226
  "slug": "perfect-numbers",
227
+ "core": false,
228
+ "unlocked_by": null,
169
229
  "difficulty": 1,
170
230
  "topics": [
171
231
 
172
232
  ]
173
233
  },
174
234
  {
235
+ "uuid": "9a4ea3da-ad43-4850-bdf3-2c578c5de838",
175
236
  "slug": "word-count",
237
+ "core": false,
238
+ "unlocked_by": null,
176
239
  "difficulty": 1,
177
240
  "topics": [
178
241
  "Control flow (loops)",
@@ -183,161 +246,230 @@
183
246
  ]
184
247
  },
185
248
  {
249
+ "uuid": "0c1c4788-0372-42e7-81c1-b090bb7ebc8b",
186
250
  "slug": "acronym",
251
+ "core": false,
252
+ "unlocked_by": null,
187
253
  "difficulty": 1,
188
254
  "topics": [
189
255
 
190
256
  ]
191
257
  },
192
258
  {
259
+ "uuid": "a6bd8126-3879-4593-8380-39ebfa87801b",
193
260
  "slug": "scrabble-score",
261
+ "core": false,
262
+ "unlocked_by": null,
194
263
  "difficulty": 1,
195
264
  "topics": [
196
265
 
197
266
  ]
198
267
  },
199
268
  {
269
+ "uuid": "4226e3c6-99d4-406d-998a-bcf11845b211",
200
270
  "slug": "roman-numerals",
271
+ "core": false,
272
+ "unlocked_by": null,
201
273
  "difficulty": 1,
202
274
  "topics": [
203
275
 
204
276
  ]
205
277
  },
206
278
  {
279
+ "uuid": "f1943e87-182a-44f5-a885-3d68a0c0a0dc",
207
280
  "slug": "circular-buffer",
281
+ "core": false,
282
+ "unlocked_by": null,
208
283
  "difficulty": 1,
209
284
  "topics": [
210
285
 
211
286
  ]
212
287
  },
213
288
  {
289
+ "uuid": "c3035180-ff4c-4afe-8019-f8364158b74e",
214
290
  "slug": "binary",
291
+ "core": false,
292
+ "unlocked_by": null,
215
293
  "difficulty": 1,
216
294
  "topics": [
217
295
 
218
296
  ]
219
297
  },
220
298
  {
299
+ "uuid": "73ecd6c2-e59b-4354-b305-64e28a60433f",
221
300
  "slug": "prime-factors",
301
+ "core": false,
302
+ "unlocked_by": null,
222
303
  "difficulty": 1,
223
304
  "topics": [
224
305
 
225
306
  ]
226
307
  },
227
308
  {
309
+ "uuid": "86b1acf1-9e2d-4b04-b8b0-e9ae6beb5f3d",
228
310
  "slug": "raindrops",
311
+ "core": false,
312
+ "unlocked_by": null,
229
313
  "difficulty": 1,
230
314
  "topics": [
231
315
 
232
316
  ]
233
317
  },
234
318
  {
319
+ "uuid": "23210e9e-81f6-4279-a776-00459c7ccd02",
235
320
  "slug": "allergies",
321
+ "core": false,
322
+ "unlocked_by": null,
236
323
  "difficulty": 1,
237
324
  "topics": [
238
325
 
239
326
  ]
240
327
  },
241
328
  {
329
+ "uuid": "e61f3d54-55d2-4d32-9d2a-e7d6af3a3247",
242
330
  "slug": "strain",
331
+ "core": false,
332
+ "unlocked_by": null,
243
333
  "difficulty": 1,
244
334
  "topics": [
245
335
 
246
336
  ]
247
337
  },
248
338
  {
339
+ "uuid": "99974454-0736-4cc0-b88f-ed5701397a97",
249
340
  "slug": "atbash-cipher",
341
+ "core": false,
342
+ "unlocked_by": null,
250
343
  "difficulty": 1,
251
344
  "topics": [
252
345
 
253
346
  ]
254
347
  },
255
348
  {
349
+ "uuid": "dc9b2598-9757-4b20-82f9-8049ad081ac9",
256
350
  "slug": "accumulate",
351
+ "core": false,
352
+ "unlocked_by": null,
257
353
  "difficulty": 1,
258
354
  "topics": [
259
355
 
260
356
  ]
261
357
  },
262
358
  {
359
+ "uuid": "a98e3593-d5b4-4c2b-8569-ae3ae7e07dad",
263
360
  "slug": "crypto-square",
361
+ "core": false,
362
+ "unlocked_by": null,
264
363
  "difficulty": 1,
265
364
  "topics": [
266
365
 
267
366
  ]
268
367
  },
269
368
  {
369
+ "uuid": "f317721d-e1f5-4e68-9fdc-f9bc7b6b004d",
270
370
  "slug": "trinary",
371
+ "core": false,
372
+ "unlocked_by": null,
271
373
  "difficulty": 1,
272
374
  "topics": [
273
375
 
274
376
  ]
275
377
  },
276
378
  {
379
+ "uuid": "4cad8ee8-40be-4d4d-8c14-45d8c6e29a32",
277
380
  "slug": "sieve",
381
+ "core": false,
382
+ "unlocked_by": null,
278
383
  "difficulty": 1,
279
384
  "topics": [
280
385
 
281
386
  ]
282
387
  },
283
388
  {
389
+ "uuid": "fff57c49-cde9-4a0c-b70b-2903cef212af",
284
390
  "slug": "simple-cipher",
391
+ "core": false,
392
+ "unlocked_by": null,
285
393
  "difficulty": 1,
286
394
  "topics": [
287
395
 
288
396
  ]
289
397
  },
290
398
  {
399
+ "uuid": "9892d47d-97a0-4a2f-8284-6f84c86559e8",
291
400
  "slug": "octal",
401
+ "core": false,
402
+ "unlocked_by": null,
292
403
  "difficulty": 1,
293
404
  "topics": [
294
405
 
295
406
  ]
296
407
  },
297
408
  {
409
+ "uuid": "bb46e832-8c37-45ee-9ee7-5037015b965c",
298
410
  "slug": "luhn",
411
+ "core": false,
412
+ "unlocked_by": null,
299
413
  "difficulty": 1,
300
414
  "topics": [
301
415
 
302
416
  ]
303
417
  },
304
418
  {
419
+ "uuid": "9a515ad0-34c7-4191-8784-5c4cd6385b38",
305
420
  "slug": "pig-latin",
421
+ "core": false,
422
+ "unlocked_by": null,
306
423
  "difficulty": 1,
307
424
  "topics": [
308
425
 
309
426
  ]
310
427
  },
311
428
  {
429
+ "uuid": "26a973dd-d72e-40fb-abeb-0ba306356ed6",
312
430
  "slug": "pythagorean-triplet",
431
+ "core": false,
432
+ "unlocked_by": null,
313
433
  "difficulty": 1,
314
434
  "topics": [
315
435
 
316
436
  ]
317
437
  },
318
438
  {
439
+ "uuid": "06afdb06-8d2a-4cb0-baf1-48ae997cf1f5",
319
440
  "slug": "series",
441
+ "core": false,
442
+ "unlocked_by": null,
320
443
  "difficulty": 1,
321
444
  "topics": [
322
445
 
323
446
  ]
324
447
  },
325
448
  {
449
+ "uuid": "07110dd5-b879-40b9-9485-685cb0963d8f",
326
450
  "slug": "difference-of-squares",
451
+ "core": false,
452
+ "unlocked_by": null,
327
453
  "difficulty": 1,
328
454
  "topics": [
329
455
 
330
456
  ]
331
457
  },
332
458
  {
459
+ "uuid": "0a3a452c-f734-47eb-8e65-34c8ae710ef0",
333
460
  "slug": "secret-handshake",
461
+ "core": false,
462
+ "unlocked_by": null,
334
463
  "difficulty": 1,
335
464
  "topics": [
336
465
 
337
466
  ]
338
467
  },
339
468
  {
469
+ "uuid": "8786d591-077b-49bc-be8d-d014dc9dc308",
340
470
  "slug": "proverb",
471
+ "core": false,
472
+ "unlocked_by": null,
341
473
  "difficulty": 1,
342
474
  "topics": [
343
475
  "Arrays",
@@ -345,189 +477,270 @@
345
477
  ]
346
478
  },
347
479
  {
480
+ "uuid": "ecc41237-f629-458f-873e-2cc51ba1a385",
348
481
  "slug": "linked-list",
482
+ "core": false,
483
+ "unlocked_by": null,
349
484
  "difficulty": 1,
350
485
  "topics": [
351
486
 
352
487
  ]
353
488
  },
354
489
  {
490
+ "uuid": "bb54bf08-24ba-45e1-bdf7-08db161e5843",
355
491
  "slug": "wordy",
492
+ "core": false,
493
+ "unlocked_by": null,
356
494
  "difficulty": 1,
357
495
  "topics": [
358
496
 
359
497
  ]
360
498
  },
361
499
  {
500
+ "uuid": "32a0a5fa-c7de-470c-beff-118b448b3916",
362
501
  "slug": "flatten-array",
502
+ "core": false,
503
+ "unlocked_by": null,
363
504
  "difficulty": 1,
364
505
  "topics": [
365
506
 
366
507
  ]
367
508
  },
368
509
  {
510
+ "uuid": "33b8f4c0-3210-478a-9225-5c30ad6df870",
369
511
  "slug": "hexadecimal",
512
+ "core": false,
513
+ "unlocked_by": null,
370
514
  "difficulty": 1,
371
515
  "topics": [
372
516
 
373
517
  ]
374
518
  },
375
519
  {
520
+ "uuid": "44bd02a7-0e3a-4441-ab76-524e36d4661c",
376
521
  "slug": "largest-series-product",
522
+ "core": false,
523
+ "unlocked_by": null,
377
524
  "difficulty": 1,
378
525
  "topics": [
379
526
 
380
527
  ]
381
528
  },
382
529
  {
530
+ "uuid": "2702ac90-0be2-43a2-91b6-7256a25fec87",
383
531
  "slug": "kindergarten-garden",
532
+ "core": false,
533
+ "unlocked_by": null,
384
534
  "difficulty": 1,
385
535
  "topics": [
386
536
 
387
537
  ]
388
538
  },
389
539
  {
540
+ "uuid": "5991c379-f033-4b46-9702-6b7fd03640e8",
390
541
  "slug": "binary-search",
542
+ "core": false,
543
+ "unlocked_by": null,
391
544
  "difficulty": 1,
392
545
  "topics": [
393
546
 
394
547
  ]
395
548
  },
396
549
  {
550
+ "uuid": "865806e0-950f-49a5-a6e5-26472b90ab85",
397
551
  "slug": "binary-search-tree",
552
+ "core": false,
553
+ "unlocked_by": null,
398
554
  "difficulty": 1,
399
555
  "topics": [
400
556
 
401
557
  ]
402
558
  },
403
559
  {
560
+ "uuid": "fbfe6032-c209-40bd-b485-8b2881638166",
404
561
  "slug": "matrix",
562
+ "core": false,
563
+ "unlocked_by": null,
405
564
  "difficulty": 1,
406
565
  "topics": [
407
566
 
408
567
  ]
409
568
  },
410
569
  {
570
+ "uuid": "00002977-ea1e-45e2-b66e-09d793b5c1ad",
411
571
  "slug": "robot-simulator",
572
+ "core": false,
573
+ "unlocked_by": null,
412
574
  "difficulty": 1,
413
575
  "topics": [
414
576
 
415
577
  ]
416
578
  },
417
579
  {
580
+ "uuid": "8fa51380-ec2c-4806-8833-cf543579de17",
418
581
  "slug": "nth-prime",
582
+ "core": false,
583
+ "unlocked_by": null,
419
584
  "difficulty": 1,
420
585
  "topics": [
421
586
 
422
587
  ]
423
588
  },
424
589
  {
590
+ "uuid": "fde83f66-d927-48f8-a599-efb98927f0b1",
425
591
  "slug": "palindrome-products",
592
+ "core": false,
593
+ "unlocked_by": null,
426
594
  "difficulty": 1,
427
595
  "topics": [
428
596
 
429
597
  ]
430
598
  },
431
599
  {
600
+ "uuid": "a96ab45d-10a0-42cf-a754-c2466037ceaf",
432
601
  "slug": "pascals-triangle",
602
+ "core": false,
603
+ "unlocked_by": null,
433
604
  "difficulty": 1,
434
605
  "topics": [
435
606
 
436
607
  ]
437
608
  },
438
609
  {
610
+ "uuid": "01d286f6-5f29-4d4b-a4de-e217a4833bfa",
439
611
  "slug": "say",
612
+ "core": false,
613
+ "unlocked_by": null,
440
614
  "difficulty": 1,
441
615
  "topics": [
442
616
 
443
617
  ]
444
618
  },
445
619
  {
620
+ "uuid": "d4ec15c4-2742-493b-97fe-9d5121f0b659",
446
621
  "slug": "custom-set",
622
+ "core": false,
623
+ "unlocked_by": null,
447
624
  "difficulty": 1,
448
625
  "topics": [
449
626
 
450
627
  ]
451
628
  },
452
629
  {
630
+ "uuid": "f30463c4-9d8c-4238-a691-e594291b4425",
453
631
  "slug": "sum-of-multiples",
632
+ "core": false,
633
+ "unlocked_by": null,
454
634
  "difficulty": 1,
455
635
  "topics": [
456
636
 
457
637
  ]
458
638
  },
459
639
  {
640
+ "uuid": "fefcfeba-59ec-4c63-a562-374201ee39a7",
460
641
  "slug": "queen-attack",
642
+ "core": false,
643
+ "unlocked_by": null,
461
644
  "difficulty": 1,
462
645
  "topics": [
463
646
 
464
647
  ]
465
648
  },
466
649
  {
650
+ "uuid": "98cbae4f-78b6-4745-b922-39e8db9a12bb",
467
651
  "slug": "saddle-points",
652
+ "core": false,
653
+ "unlocked_by": null,
468
654
  "difficulty": 1,
469
655
  "topics": [
470
656
 
471
657
  ]
472
658
  },
473
659
  {
660
+ "uuid": "759618b1-7ccc-46cd-889d-aea58ec88756",
474
661
  "slug": "ocr-numbers",
662
+ "core": false,
663
+ "unlocked_by": null,
475
664
  "difficulty": 1,
476
665
  "topics": [
477
666
 
478
667
  ]
479
668
  },
480
669
  {
670
+ "uuid": "86b1b6ba-c1fe-492d-a7ec-c22c525b4da8",
481
671
  "slug": "meetup",
672
+ "core": false,
673
+ "unlocked_by": null,
482
674
  "difficulty": 1,
483
675
  "topics": [
484
676
 
485
677
  ]
486
678
  },
487
679
  {
680
+ "uuid": "25099f87-5c3b-4a8a-b648-4639d1e9fa84",
488
681
  "slug": "bracket-push",
682
+ "core": false,
683
+ "unlocked_by": null,
489
684
  "difficulty": 1,
490
685
  "topics": [
491
686
 
492
687
  ]
493
688
  },
494
689
  {
690
+ "uuid": "4c857b17-33b0-47fa-b981-6b2fe4e394a1",
495
691
  "slug": "two-bucket",
692
+ "core": false,
693
+ "unlocked_by": null,
496
694
  "difficulty": 1,
497
695
  "topics": [
498
696
 
499
697
  ]
500
698
  },
501
699
  {
700
+ "uuid": "c168fe1f-f84e-46e6-91fc-7553d048a4e9",
502
701
  "slug": "bowling",
702
+ "core": false,
703
+ "unlocked_by": null,
503
704
  "difficulty": 1,
504
705
  "topics": [
505
706
 
506
707
  ]
507
708
  },
508
709
  {
710
+ "uuid": "04a4ef78-5b61-454f-8c37-798875fb4956",
509
711
  "slug": "diamond",
712
+ "core": false,
713
+ "unlocked_by": null,
510
714
  "difficulty": 1,
511
715
  "topics": [
512
716
 
513
717
  ]
514
718
  },
515
719
  {
720
+ "uuid": "cdfcec62-f2f3-4408-ad2c-8b5e1e56e791",
516
721
  "slug": "all-your-base",
722
+ "core": false,
723
+ "unlocked_by": null,
517
724
  "difficulty": 1,
518
725
  "topics": [
519
726
 
520
727
  ]
521
728
  },
522
729
  {
730
+ "uuid": "d66c2b56-b465-4922-af35-ae78944c0aac",
523
731
  "slug": "run-length-encoding",
732
+ "core": false,
733
+ "unlocked_by": null,
524
734
  "difficulty": 1,
525
735
  "topics": [
526
736
 
527
737
  ]
528
738
  },
529
739
  {
740
+ "uuid": "22fa5ab4-935b-44cc-b055-9803214ae5f3",
530
741
  "slug": "minesweeper",
742
+ "core": false,
743
+ "unlocked_by": null,
531
744
  "difficulty": 7,
532
745
  "topics": [
533
746
  "games",
@@ -536,7 +749,10 @@
536
749
  ]
537
750
  },
538
751
  {
752
+ "uuid": "42a7fd83-4508-403c-8b5e-f0a3126fac8a",
539
753
  "slug": "alphametics",
754
+ "core": false,
755
+ "unlocked_by": null,
540
756
  "difficulty": 7,
541
757
  "topics": [
542
758
  "games",
@@ -544,7 +760,10 @@
544
760
  ]
545
761
  },
546
762
  {
763
+ "uuid": "c21ab6e8-b845-49d0-a2f6-1c89c7a07626",
547
764
  "slug": "simple-linked-list",
765
+ "core": false,
766
+ "unlocked_by": null,
548
767
  "difficulty": 8,
549
768
  "topics": [
550
769
  "Arrays",
@@ -553,19 +772,28 @@
553
772
  ]
554
773
  },
555
774
  {
775
+ "uuid": "e70defe4-5944-4392-956c-63cb92e7fd9c",
556
776
  "slug": "list-ops",
777
+ "core": false,
778
+ "unlocked_by": null,
557
779
  "difficulty": 8,
558
780
  "topics": [
559
781
  "Data structures",
560
782
  "Lists",
561
783
  "Recursion"
562
784
  ]
785
+ },
786
+ {
787
+ "uuid": "1b53340d-ea40-44ee-bf2e-42e516704e7c",
788
+ "slug": "nucleotide-count",
789
+ "deprecated": true
790
+ },
791
+ {
792
+ "uuid": "e9a6b2ea-a67d-4b75-800d-7b46240094ec",
793
+ "slug": "point-mutations",
794
+ "deprecated": true
563
795
  }
564
796
  ],
565
- "deprecated": [
566
- "nucleotide-count",
567
- "point-mutations"
568
- ],
569
797
  "foregone": [
570
798
 
571
799
  ]