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
@@ -148,6 +148,13 @@
148
148
 
149
149
  ]
150
150
  },
151
+ {
152
+ "difficulty": 4,
153
+ "slug": "atbash-cipher",
154
+ "topics": [
155
+
156
+ ]
157
+ },
151
158
  {
152
159
  "difficulty": 4,
153
160
  "slug": "nth-prime",
@@ -269,7 +276,7 @@
269
276
  },
270
277
  {
271
278
  "difficulty": 5,
272
- "slug": "atbash-cipher",
279
+ "slug": "rotational-cipher",
273
280
  "topics": [
274
281
 
275
282
  ]
@@ -0,0 +1,28 @@
1
+ buildscript {
2
+ ext.kotlin_version = '1.1.1'
3
+ repositories {
4
+ mavenCentral()
5
+ }
6
+ dependencies {
7
+ classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
8
+ }
9
+ }
10
+
11
+ apply plugin: 'kotlin'
12
+
13
+ repositories {
14
+ mavenCentral()
15
+ }
16
+
17
+ dependencies {
18
+ compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
19
+
20
+ testCompile 'junit:junit:4.12'
21
+ testCompile "org.jetbrains.kotlin:kotlin-test-junit:$kotlin_version"
22
+ }
23
+ test {
24
+ testLogging {
25
+ exceptionFormat = 'full'
26
+ events = ["passed", "failed", "skipped"]
27
+ }
28
+ }
@@ -0,0 +1,18 @@
1
+ class RotationalCipher(val shiftKey: Int) {
2
+
3
+ companion object {
4
+ private val LOWERS = ('a'..'z').toList()
5
+ private val UPPERS = ('A'..'Z').toList()
6
+ }
7
+
8
+ fun encode(text: String): String {
9
+ return text.map { char ->
10
+ when (char) {
11
+ in LOWERS -> LOWERS[(LOWERS.indexOf(char) + shiftKey) % LOWERS.size]
12
+ in UPPERS -> UPPERS[(UPPERS.indexOf(char) + shiftKey) % UPPERS.size]
13
+ else -> char
14
+ }
15
+ }.joinToString("")
16
+ }
17
+
18
+ }
@@ -0,0 +1,81 @@
1
+ import org.junit.Ignore
2
+ import org.junit.Test
3
+ import kotlin.test.assertEquals
4
+
5
+ /*
6
+ * version: 1.0.0
7
+ */
8
+ class RotationalCipherTest {
9
+
10
+ @Test
11
+ fun testRotateLowercaseABy1NoWrapAround() {
12
+ val cipher = RotationalCipher(1)
13
+ assertEquals("b", cipher.encode("a"))
14
+ }
15
+
16
+ @Ignore
17
+ @Test
18
+ fun testRotateLowercaseABy26SingleWrapAround() {
19
+ val cipher = RotationalCipher(26)
20
+ assertEquals("a", cipher.encode("a"))
21
+ }
22
+
23
+ @Ignore
24
+ @Test
25
+ fun testRotateLowercaseABy0() {
26
+ val cipher = RotationalCipher(0)
27
+ assertEquals("a", cipher.encode("a"))
28
+ }
29
+
30
+ @Ignore
31
+ @Test
32
+ fun testRotateLowercaseMBy13NoWrapAround() {
33
+ val cipher = RotationalCipher(13)
34
+ assertEquals("z", cipher.encode("m"))
35
+ }
36
+
37
+ @Ignore
38
+ @Test
39
+ fun testRotateLowercaseNBy1SingleWrapAround() {
40
+ val cipher = RotationalCipher(13)
41
+ assertEquals("a", cipher.encode("n"))
42
+ }
43
+
44
+ @Ignore
45
+ @Test
46
+ fun testRotateCapitalLettersNoWrapAround() {
47
+ val cipher = RotationalCipher(5)
48
+ assertEquals("TRL", cipher.encode("OMG"))
49
+ }
50
+
51
+ @Ignore
52
+ @Test
53
+ fun testSpacesAreUnalteredByRotation() {
54
+ val cipher = RotationalCipher(5)
55
+ assertEquals("T R L", cipher.encode("O M G"))
56
+ }
57
+
58
+ @Ignore
59
+ @Test
60
+ fun testNumbersAreUnalteredByRotation() {
61
+ val cipher = RotationalCipher(4)
62
+ assertEquals("Xiwxmrk 1 2 3 xiwxmrk", cipher.encode("Testing 1 2 3 testing"))
63
+ }
64
+
65
+ @Ignore
66
+ @Test
67
+ fun testPunctuationIsUnalteredByRotation() {
68
+ val cipher = RotationalCipher(21)
69
+ assertEquals("Gzo'n zvo, Bmviyhv!", cipher.encode("Let's eat, Grandma!"))
70
+ }
71
+
72
+ @Ignore
73
+ @Test
74
+ fun testAllLettersRotateCorrectly() {
75
+ val cipher = RotationalCipher(13)
76
+ assertEquals(
77
+ "Gur dhvpx oebja sbk whzcf bire gur ynml qbt.",
78
+ cipher.encode("The quick brown fox jumps over the lazy dog."))
79
+ }
80
+
81
+ }
@@ -45,6 +45,7 @@ include 'rna-transcription'
45
45
  include 'robot-name'
46
46
  include 'robot-simulator'
47
47
  include 'roman-numerals'
48
+ include 'rotational-cipher'
48
49
  include 'saddle-points'
49
50
  include 'scrabble-score'
50
51
  include 'secret-handshake'
@@ -0,0 +1,16 @@
1
+ # {{ .Spec.Name }}
2
+
3
+ {{ .Spec.Description -}}
4
+ {{- with .Hints }}
5
+ {{ . }}
6
+ {{ end }}
7
+ {{- with .TrackInsert }}
8
+ {{ . }}
9
+ {{ end }}
10
+ {{- with .Spec.Credits -}}
11
+ ## Source
12
+
13
+ {{ . }}
14
+ {{ end }}
15
+ ## Submitting Incomplete Solutions
16
+ It's possible to submit an incomplete solution so you can see how others have completed the exercise.
@@ -0,0 +1,42 @@
1
+ # Hamming
2
+
3
+ Calculate the Hamming difference between two DNA strands.
4
+
5
+ A mutation is simply a mistake that occurs during the creation or
6
+ copying of a nucleic acid, in particular DNA. Because nucleic acids are
7
+ vital to cellular functions, mutations tend to cause a ripple effect
8
+ throughout the cell. Although mutations are technically mistakes, a very
9
+ rare mutation may equip the cell with a beneficial attribute. In fact,
10
+ the macro effects of evolution are attributable by the accumulated
11
+ result of beneficial microscopic mutations over many generations.
12
+
13
+ The simplest and most common type of nucleic acid mutation is a point
14
+ mutation, which replaces one base with another at a single nucleotide.
15
+
16
+ By counting the number of differences between two homologous DNA strands
17
+ taken from different genomes with a common ancestor, we get a measure of
18
+ the minimum number of point mutations that could have occurred on the
19
+ evolutionary path between the two strands.
20
+
21
+ This is called the 'Hamming distance'.
22
+
23
+ It is found by comparing two DNA strands and counting how many of the
24
+ nucleotides are different from their equivalent in the other string.
25
+
26
+ GAGCCTACTAACGGGAT
27
+ CATCGTAATGACGGCCT
28
+ ^ ^ ^ ^ ^ ^^
29
+
30
+ The Hamming distance between these two DNA strands is 7.
31
+
32
+ # Implementation notes
33
+
34
+ The Hamming distance is only defined for sequences of equal length. This means
35
+ that based on the definition, each language could deal with getting sequences
36
+ of equal length differently.
37
+ ## Source
38
+
39
+ The Calculating Point Mutations problem at Rosalind [http://rosalind.info/problems/hamm/](http://rosalind.info/problems/hamm/)
40
+
41
+ ## Submitting Incomplete Solutions
42
+ It's possible to submit an incomplete solution so you can see how others have completed the exercise.
@@ -0,0 +1,21 @@
1
+ # Hello World
2
+
3
+ The classical introductory exercise. Just say "Hello, World!".
4
+
5
+ ["Hello, World!"](http://en.wikipedia.org/wiki/%22Hello,_world!%22_program) is
6
+ the traditional first program for beginning programming in a new language
7
+ or environment.
8
+
9
+ The objectives are simple:
10
+
11
+ - Write a function that returns the string "Hello, World!".
12
+ - Run the test suite and make sure that it succeeds.
13
+ - Submit your solution and check it at the website.
14
+
15
+ If everything goes well, you will be ready to fetch your first real exercise.
16
+ ## Source
17
+
18
+ This is an exercise to introduce users to using Exercism [http://en.wikipedia.org/wiki/%22Hello,_world!%22_program](http://en.wikipedia.org/wiki/%22Hello,_world!%22_program)
19
+
20
+ ## Submitting Incomplete Solutions
21
+ It's possible to submit an incomplete solution so you can see how others have completed the exercise.
@@ -27,7 +27,7 @@ don't be afraid or shy! We promise to be friendly and as helpful as possible.
27
27
 
28
28
  As a first step we recommend you read the [contributing guide][cont-guide].
29
29
 
30
- [cont-guide]: https://github.com/exercism/x-common/blob/master/CONTRIBUTING.md
30
+ [cont-guide]: https://github.com/exercism/docs/blob/master/contributing-to-language-tracks/README.md
31
31
 
32
32
  #### Reporting or fixing bugs
33
33
 
@@ -59,18 +59,18 @@ totally new exercise, but it might be a good idea to first discuss it in one
59
59
  of [our forums](#asking-for-help).
60
60
 
61
61
  [missing]: http://exercism.io/languages/purescript/todo
62
- [porting]: https://github.com/exercism/x-common/blob/master/CONTRIBUTING.md#porting-an-exercise-to-another-language-track
62
+ [porting]: https://github.com/exercism/docs/blob/master/contributing-to-language-tracks/README.md#porting-an-exercise-to-another-language-track
63
63
 
64
64
 
65
65
  ### Repository structure and conventions
66
66
 
67
- [Here](https://github.com/exercism/x-common/blob/master/CONTRIBUTING.md#track-anatomy)
67
+ [Here](https://github.com/exercism/docs/blob/master/contributing-to-language-tracks/README.md#track-anatomy)
68
68
  is a general description of all the files and directories that are not
69
69
  explicitly described below.
70
70
 
71
71
 
72
72
  ### Writing a pull request
73
- To fix a bug you should [create a pull request from a fork](https://help.github.com/articles/creating-a-pull-request-from-a-fork/) [here](https://github.com/exercism/purescript/pull). See also [here](https://github.com/exercism/x-common/blob/master/CONTRIBUTING.md#git-basics) for more information.
73
+ To fix a bug you should [create a pull request from a fork](https://help.github.com/articles/creating-a-pull-request-from-a-fork/) [here](https://github.com/exercism/purescript/pull). See also [here](https://github.com/exercism/docs/blob/master/contributing-to-language-tracks/README.md#git-basics) for more information.
74
74
 
75
75
 
76
76
 
@@ -5,14 +5,20 @@
5
5
  "active": true,
6
6
  "exercises": [
7
7
  {
8
+ "uuid": "1fadd9c3-a7c9-4355-aef9-82e0df3d45b9",
8
9
  "slug": "hello-world",
10
+ "core": false,
11
+ "unlocked_by": null,
9
12
  "difficulty": 1,
10
13
  "topics": [
11
14
  "Strings"
12
15
  ]
13
16
  },
14
17
  {
18
+ "uuid": "57b76aba-a485-464d-84ba-e9a445b25be6",
15
19
  "slug": "bob",
20
+ "core": false,
21
+ "unlocked_by": null,
16
22
  "difficulty": 1,
17
23
  "topics": [
18
24
  "Strings",
@@ -21,7 +27,10 @@
21
27
  ]
22
28
  },
23
29
  {
30
+ "uuid": "7221946d-6321-4cec-8e64-050abae3ccd7",
24
31
  "slug": "sum-of-multiples",
32
+ "core": false,
33
+ "unlocked_by": null,
25
34
  "difficulty": 1,
26
35
  "topics": [
27
36
  "Filtering",
@@ -29,7 +38,10 @@
29
38
  ]
30
39
  },
31
40
  {
41
+ "uuid": "b600cda0-f5b8-45b3-bfd0-7e0c19a0b073",
32
42
  "slug": "leap",
43
+ "core": false,
44
+ "unlocked_by": null,
33
45
  "difficulty": 1,
34
46
  "topics": [
35
47
  "Integers",
@@ -37,7 +49,10 @@
37
49
  ]
38
50
  },
39
51
  {
52
+ "uuid": "f147966d-97ec-4479-8679-8cad942b499a",
40
53
  "slug": "space-age",
54
+ "core": false,
55
+ "unlocked_by": null,
41
56
  "difficulty": 1,
42
57
  "topics": [
43
58
  "Dates",
@@ -46,7 +61,10 @@
46
61
  ]
47
62
  },
48
63
  {
64
+ "uuid": "4c3710dc-fac2-4056-b4ac-945b67c08068",
49
65
  "slug": "gigasecond",
66
+ "core": false,
67
+ "unlocked_by": null,
50
68
  "difficulty": 1,
51
69
  "topics": [
52
70
  "Dates",
@@ -55,7 +73,10 @@
55
73
  ]
56
74
  },
57
75
  {
76
+ "uuid": "1fe9f43a-7774-4fbd-864b-eff7749ebbc6",
58
77
  "slug": "difference-of-squares",
78
+ "core": false,
79
+ "unlocked_by": null,
59
80
  "difficulty": 1,
60
81
  "topics": [
61
82
  "Integers",
@@ -63,14 +84,20 @@
63
84
  ]
64
85
  },
65
86
  {
87
+ "uuid": "e6f96ae1-6736-42f4-b74d-14a4aa8aa5fc",
66
88
  "slug": "pangram",
89
+ "core": false,
90
+ "unlocked_by": null,
67
91
  "difficulty": 2,
68
92
  "topics": [
69
93
  "Strings"
70
94
  ]
71
95
  },
72
96
  {
97
+ "uuid": "b469a197-adf4-4d02-b129-07f993104054",
73
98
  "slug": "grade-school",
99
+ "core": false,
100
+ "unlocked_by": null,
74
101
  "difficulty": 2,
75
102
  "topics": [
76
103
  "Maps",
@@ -79,7 +106,10 @@
79
106
  ]
80
107
  },
81
108
  {
109
+ "uuid": "6d136d51-390a-46a7-b42b-fdecff7b622a",
82
110
  "slug": "accumulate",
111
+ "core": false,
112
+ "unlocked_by": null,
83
113
  "difficulty": 2,
84
114
  "topics": [
85
115
  "Generics",
@@ -88,7 +118,10 @@
88
118
  ]
89
119
  },
90
120
  {
121
+ "uuid": "54ff0017-7c53-4e83-a3bd-aff2953185b7",
91
122
  "slug": "raindrops",
123
+ "core": false,
124
+ "unlocked_by": null,
92
125
  "difficulty": 2,
93
126
  "topics": [
94
127
  "Strings",
@@ -97,7 +130,10 @@
97
130
  ]
98
131
  },
99
132
  {
133
+ "uuid": "5a31217f-02fd-4be4-b64f-7a93f36f5140",
100
134
  "slug": "hamming",
135
+ "core": false,
136
+ "unlocked_by": null,
101
137
  "difficulty": 3,
102
138
  "topics": [
103
139
  "Strings",
@@ -106,7 +142,10 @@
106
142
  ]
107
143
  },
108
144
  {
145
+ "uuid": "d7f7b64e-1dba-400e-a9c1-acd521d21753",
109
146
  "slug": "phone-number",
147
+ "core": false,
148
+ "unlocked_by": null,
110
149
  "difficulty": 3,
111
150
  "topics": [
112
151
  "Optional values",
@@ -116,7 +155,10 @@
116
155
  ]
117
156
  },
118
157
  {
158
+ "uuid": "d3a10b82-ae65-4a99-968d-4f1bec62b88a",
119
159
  "slug": "strain",
160
+ "core": false,
161
+ "unlocked_by": null,
120
162
  "difficulty": 3,
121
163
  "topics": [
122
164
  "Generics",
@@ -125,7 +167,10 @@
125
167
  ]
126
168
  },
127
169
  {
170
+ "uuid": "d06505fb-3844-481a-bf7a-4e05545119f0",
128
171
  "slug": "robot-name",
172
+ "core": false,
173
+ "unlocked_by": null,
129
174
  "difficulty": 3,
130
175
  "topics": [
131
176
  "Strings",
@@ -133,7 +178,10 @@
133
178
  ]
134
179
  },
135
180
  {
181
+ "uuid": "d21f16ce-8e6e-436e-918b-e973cfc7c2a0",
136
182
  "slug": "etl",
183
+ "core": false,
184
+ "unlocked_by": null,
137
185
  "difficulty": 3,
138
186
  "topics": [
139
187
  "Lists",
@@ -144,7 +192,10 @@
144
192
  ]
145
193
  },
146
194
  {
195
+ "uuid": "39b2350c-60b5-4da0-9fb9-26f75a4bad6d",
147
196
  "slug": "grains",
197
+ "core": false,
198
+ "unlocked_by": null,
148
199
  "difficulty": 3,
149
200
  "topics": [
150
201
  "Optional values",
@@ -152,7 +203,10 @@
152
203
  ]
153
204
  },
154
205
  {
206
+ "uuid": "a4797d24-9293-41b2-b630-3ac9e3840d47",
155
207
  "slug": "scrabble-score",
208
+ "core": false,
209
+ "unlocked_by": null,
156
210
  "difficulty": 3,
157
211
  "topics": [
158
212
  "Strings",
@@ -160,7 +214,10 @@
160
214
  ]
161
215
  },
162
216
  {
217
+ "uuid": "fc58b128-24a8-48e7-90db-b4843fbdf40a",
163
218
  "slug": "rna-transcription",
219
+ "core": false,
220
+ "unlocked_by": null,
164
221
  "difficulty": 3,
165
222
  "topics": [
166
223
  "Optional values",
@@ -169,14 +226,20 @@
169
226
  ]
170
227
  },
171
228
  {
229
+ "uuid": "2be75924-fce4-49fa-b52e-6cdcf222b283",
172
230
  "slug": "triangle",
231
+ "core": false,
232
+ "unlocked_by": null,
173
233
  "difficulty": 3,
174
234
  "topics": [
175
235
  "Mathematics"
176
236
  ]
177
237
  },
178
238
  {
239
+ "uuid": "612b8880-1dd1-410d-b530-c66ec9edc1b3",
179
240
  "slug": "perfect-numbers",
241
+ "core": false,
242
+ "unlocked_by": null,
180
243
  "difficulty": 3,
181
244
  "topics": [
182
245
  "Discriminated unions",
@@ -186,7 +249,10 @@
186
249
  ]
187
250
  },
188
251
  {
252
+ "uuid": "f653decb-f7fa-47ff-81a6-2b3981261ea7",
189
253
  "slug": "binary-search",
254
+ "core": false,
255
+ "unlocked_by": null,
190
256
  "difficulty": 3,
191
257
  "topics": [
192
258
  "Searching",
@@ -195,7 +261,10 @@
195
261
  ]
196
262
  },
197
263
  {
264
+ "uuid": "e810d2eb-5c90-4135-8db8-0bda54a33d2e",
198
265
  "slug": "secret-handshake",
266
+ "core": false,
267
+ "unlocked_by": null,
199
268
  "difficulty": 3,
200
269
  "topics": [
201
270
  "Lists",
@@ -204,7 +273,10 @@
204
273
  ]
205
274
  },
206
275
  {
276
+ "uuid": "9f5ee7aa-943b-4151-8530-def1428fc00f",
207
277
  "slug": "sieve",
278
+ "core": false,
279
+ "unlocked_by": null,
208
280
  "difficulty": 3,
209
281
  "topics": [
210
282
  "Filtering",
@@ -213,7 +285,10 @@
213
285
  ]
214
286
  },
215
287
  {
288
+ "uuid": "261f75c1-df67-4c62-a2e9-ce13550f5de3",
216
289
  "slug": "robot-simulator",
290
+ "core": false,
291
+ "unlocked_by": null,
217
292
  "difficulty": 3,
218
293
  "topics": [
219
294
  "Enumerations",
@@ -221,7 +296,10 @@
221
296
  ]
222
297
  },
223
298
  {
299
+ "uuid": "f6d61a0e-068b-4519-8d4d-563713be6168",
224
300
  "slug": "isogram",
301
+ "core": false,
302
+ "unlocked_by": null,
225
303
  "difficulty": 3,
226
304
  "topics": [
227
305
  "Strings",
@@ -229,7 +307,10 @@
229
307
  ]
230
308
  },
231
309
  {
310
+ "uuid": "a6a06d7f-af28-4c42-a870-0de2c9e896c2",
232
311
  "slug": "clock",
312
+ "core": false,
313
+ "unlocked_by": null,
233
314
  "difficulty": 3,
234
315
  "topics": [
235
316
  "Time",
@@ -237,7 +318,10 @@
237
318
  ]
238
319
  },
239
320
  {
321
+ "uuid": "e6a3354e-dd32-413f-856d-53c81bd0d728",
240
322
  "slug": "protein-translation",
323
+ "core": false,
324
+ "unlocked_by": null,
241
325
  "difficulty": 3,
242
326
  "topics": [
243
327
  "Strings",
@@ -246,7 +330,10 @@
246
330
  ]
247
331
  },
248
332
  {
333
+ "uuid": "15047d95-671b-4163-96b2-834ec54ea3d5",
249
334
  "slug": "beer-song",
335
+ "core": false,
336
+ "unlocked_by": null,
250
337
  "difficulty": 3,
251
338
  "topics": [
252
339
  "Text formatting",
@@ -256,7 +343,10 @@
256
343
  ]
257
344
  },
258
345
  {
346
+ "uuid": "c6c37479-a030-44ba-9da5-97eb77233ac6",
259
347
  "slug": "matrix",
348
+ "core": false,
349
+ "unlocked_by": null,
260
350
  "difficulty": 4,
261
351
  "topics": [
262
352
  "Strings",
@@ -266,7 +356,10 @@
266
356
  ]
267
357
  },
268
358
  {
359
+ "uuid": "73770426-74a8-498f-a37c-1b12aaf71281",
269
360
  "slug": "house",
361
+ "core": false,
362
+ "unlocked_by": null,
270
363
  "difficulty": 4,
271
364
  "topics": [
272
365
  "Strings",
@@ -275,7 +368,10 @@
275
368
  ]
276
369
  },
277
370
  {
371
+ "uuid": "35a0ff51-6c85-4a39-8017-62e8eabd1c21",
278
372
  "slug": "series",
373
+ "core": false,
374
+ "unlocked_by": null,
279
375
  "difficulty": 4,
280
376
  "topics": [
281
377
  "Strings",
@@ -284,7 +380,10 @@
284
380
  ]
285
381
  },
286
382
  {
383
+ "uuid": "10c53e9d-8fa6-486c-b68a-be821dec5010",
287
384
  "slug": "word-count",
385
+ "core": false,
386
+ "unlocked_by": null,
288
387
  "difficulty": 4,
289
388
  "topics": [
290
389
  "Maps",
@@ -293,7 +392,10 @@
293
392
  ]
294
393
  },
295
394
  {
395
+ "uuid": "54633841-b60f-49a0-9f95-aeda09de6232",
296
396
  "slug": "anagram",
397
+ "core": false,
398
+ "unlocked_by": null,
297
399
  "difficulty": 4,
298
400
  "topics": [
299
401
  "Sequences",
@@ -302,7 +404,10 @@
302
404
  ]
303
405
  },
304
406
  {
407
+ "uuid": "c03319c6-1a2b-4f26-a943-242ccc6a295e",
305
408
  "slug": "nucleotide-count",
409
+ "core": false,
410
+ "unlocked_by": null,
306
411
  "difficulty": 4,
307
412
  "topics": [
308
413
  "Maps",
@@ -310,14 +415,20 @@
310
415
  ]
311
416
  },
312
417
  {
418
+ "uuid": "50a7cf00-7f5e-4f38-9a13-c8ff5c895723",
313
419
  "slug": "meetup",
420
+ "core": false,
421
+ "unlocked_by": null,
314
422
  "difficulty": 4,
315
423
  "topics": [
316
424
  "Dates"
317
425
  ]
318
426
  },
319
427
  {
428
+ "uuid": "49d45a39-c8de-4b25-9ee2-5e08de8721c0",
320
429
  "slug": "prime-factors",
430
+ "core": false,
431
+ "unlocked_by": null,
321
432
  "difficulty": 4,
322
433
  "topics": [
323
434
  "Lists",
@@ -327,7 +438,10 @@
327
438
  ]
328
439
  },
329
440
  {
441
+ "uuid": "8e311809-1de4-44c3-923a-ffd863843e6b",
330
442
  "slug": "allergies",
443
+ "core": false,
444
+ "unlocked_by": null,
331
445
  "difficulty": 4,
332
446
  "topics": [
333
447
  "Lists",
@@ -336,7 +450,10 @@
336
450
  ]
337
451
  },
338
452
  {
453
+ "uuid": "adcf2a9b-2f6c-490f-b441-ad413a03fee7",
339
454
  "slug": "all-your-base",
455
+ "core": false,
456
+ "unlocked_by": null,
340
457
  "difficulty": 4,
341
458
  "topics": [
342
459
  "Integers",
@@ -347,7 +464,10 @@
347
464
  ]
348
465
  },
349
466
  {
467
+ "uuid": "1218f854-ebb9-40dd-9487-ccc4d09c9a43",
350
468
  "slug": "kindergarten-garden",
469
+ "core": false,
470
+ "unlocked_by": null,
351
471
  "difficulty": 4,
352
472
  "topics": [
353
473
  "Enumerations",
@@ -356,7 +476,10 @@
356
476
  ]
357
477
  },
358
478
  {
479
+ "uuid": "7e81f24e-c892-4e45-b0bb-6c6420ba1f0e",
359
480
  "slug": "largest-series-product",
481
+ "core": false,
482
+ "unlocked_by": null,
360
483
  "difficulty": 4,
361
484
  "topics": [
362
485
  "Strings",
@@ -367,7 +490,10 @@
367
490
  ]
368
491
  },
369
492
  {
493
+ "uuid": "34a134c4-f9f5-46c4-97db-2f6c8c1e97f5",
370
494
  "slug": "pascals-triangle",
495
+ "core": false,
496
+ "unlocked_by": null,
371
497
  "difficulty": 4,
372
498
  "topics": [
373
499
  "Control-flow (loops)",
@@ -376,7 +502,10 @@
376
502
  ]
377
503
  },
378
504
  {
505
+ "uuid": "0e858f22-401b-44ad-b972-766e2f38e5d5",
379
506
  "slug": "pythagorean-triplet",
507
+ "core": false,
508
+ "unlocked_by": null,
380
509
  "difficulty": 4,
381
510
  "topics": [
382
511
  "Integers",
@@ -386,7 +515,10 @@
386
515
  ]
387
516
  },
388
517
  {
518
+ "uuid": "aa135256-28c8-4e3e-a942-8ae5ae996ab5",
389
519
  "slug": "saddle-points",
520
+ "core": false,
521
+ "unlocked_by": null,
390
522
  "difficulty": 4,
391
523
  "topics": [
392
524
  "Matrices",
@@ -396,7 +528,10 @@
396
528
  ]
397
529
  },
398
530
  {
531
+ "uuid": "876a07ce-0ee4-4ded-bab3-c9b3f8746d57",
399
532
  "slug": "acronym",
533
+ "core": false,
534
+ "unlocked_by": null,
400
535
  "difficulty": 4,
401
536
  "topics": [
402
537
  "Strings",
@@ -404,7 +539,10 @@
404
539
  ]
405
540
  },
406
541
  {
542
+ "uuid": "163d247a-1763-4876-870a-63deb3a3daa8",
407
543
  "slug": "run-length-encoding",
544
+ "core": false,
545
+ "unlocked_by": null,
408
546
  "difficulty": 5,
409
547
  "topics": [
410
548
  "Algorithms",
@@ -413,7 +551,10 @@
413
551
  ]
414
552
  },
415
553
  {
554
+ "uuid": "4c08ec90-4c5a-4dae-812c-52899b1a29cf",
416
555
  "slug": "roman-numerals",
556
+ "core": false,
557
+ "unlocked_by": null,
417
558
  "difficulty": 5,
418
559
  "topics": [
419
560
  "Sequences",
@@ -422,7 +563,10 @@
422
563
  ]
423
564
  },
424
565
  {
566
+ "uuid": "168823e4-de57-40c0-ac8d-bec6ccf9c96d",
425
567
  "slug": "simple-linked-list",
568
+ "core": false,
569
+ "unlocked_by": null,
426
570
  "difficulty": 5,
427
571
  "topics": [
428
572
  "Classes",
@@ -432,7 +576,10 @@
432
576
  ]
433
577
  },
434
578
  {
579
+ "uuid": "842f0674-fcf3-48c3-80ae-c6d43c65f270",
435
580
  "slug": "atbash-cipher",
581
+ "core": false,
582
+ "unlocked_by": null,
436
583
  "difficulty": 5,
437
584
  "topics": [
438
585
  "Strings",
@@ -441,7 +588,10 @@
441
588
  ]
442
589
  },
443
590
  {
591
+ "uuid": "6e379741-8337-41f3-9790-dc93cacdc9b6",
444
592
  "slug": "simple-cipher",
593
+ "core": false,
594
+ "unlocked_by": null,
445
595
  "difficulty": 5,
446
596
  "topics": [
447
597
  "Optional values",
@@ -451,14 +601,20 @@
451
601
  ]
452
602
  },
453
603
  {
604
+ "uuid": "ec0334d9-df30-4e61-bea6-bd3f7c8d13e6",
454
605
  "slug": "bank-account",
606
+ "core": false,
607
+ "unlocked_by": null,
455
608
  "difficulty": 5,
456
609
  "topics": [
457
610
  "Parallellism"
458
611
  ]
459
612
  },
460
613
  {
614
+ "uuid": "b047cdd2-5afa-47a0-b48d-5c235c1099dc",
461
615
  "slug": "crypto-square",
616
+ "core": false,
617
+ "unlocked_by": null,
462
618
  "difficulty": 5,
463
619
  "topics": [
464
620
  "Strings",
@@ -468,7 +624,10 @@
468
624
  ]
469
625
  },
470
626
  {
627
+ "uuid": "9d25bf46-52d6-435e-a384-38c25517f8ee",
471
628
  "slug": "bracket-push",
629
+ "core": false,
630
+ "unlocked_by": null,
472
631
  "difficulty": 5,
473
632
  "topics": [
474
633
  "Strings",
@@ -476,7 +635,10 @@
476
635
  ]
477
636
  },
478
637
  {
638
+ "uuid": "1af833c7-2e0d-4c96-a3a9-d4812df5d1a1",
479
639
  "slug": "queen-attack",
640
+ "core": false,
641
+ "unlocked_by": null,
480
642
  "difficulty": 5,
481
643
  "topics": [
482
644
  "Strings",
@@ -486,7 +648,10 @@
486
648
  ]
487
649
  },
488
650
  {
651
+ "uuid": "8956383c-bea2-4bcc-b7af-df19f94e15e6",
489
652
  "slug": "luhn",
653
+ "core": false,
654
+ "unlocked_by": null,
490
655
  "difficulty": 5,
491
656
  "topics": [
492
657
  "Strings",
@@ -495,7 +660,10 @@
495
660
  ]
496
661
  },
497
662
  {
663
+ "uuid": "60deb77c-45f2-48a1-bff8-b0cef3b07500",
498
664
  "slug": "food-chain",
665
+ "core": false,
666
+ "unlocked_by": null,
499
667
  "difficulty": 5,
500
668
  "topics": [
501
669
  "Text formatting",
@@ -503,7 +671,10 @@
503
671
  ]
504
672
  },
505
673
  {
674
+ "uuid": "bec1be3e-2d1c-4cb7-9398-dd0249e79d2e",
506
675
  "slug": "linked-list",
676
+ "core": false,
677
+ "unlocked_by": null,
507
678
  "difficulty": 5,
508
679
  "topics": [
509
680
  "Lists",
@@ -512,14 +683,20 @@
512
683
  ]
513
684
  },
514
685
  {
686
+ "uuid": "e0810022-d3ea-463a-97da-dfdac08e3c63",
515
687
  "slug": "spiral-matrix",
688
+ "core": false,
689
+ "unlocked_by": null,
516
690
  "difficulty": 5,
517
691
  "topics": [
518
692
  "Matrices"
519
693
  ]
520
694
  },
521
695
  {
696
+ "uuid": "0605da19-048e-4a1f-b508-5d77d1e384a5",
522
697
  "slug": "custom-set",
698
+ "core": false,
699
+ "unlocked_by": null,
523
700
  "difficulty": 5,
524
701
  "topics": [
525
702
  "Sets",
@@ -528,7 +705,10 @@
528
705
  ]
529
706
  },
530
707
  {
708
+ "uuid": "a557f7e3-9fc0-4cd8-bab1-b4d8fc88402d",
531
709
  "slug": "parallel-letter-frequency",
710
+ "core": false,
711
+ "unlocked_by": null,
532
712
  "difficulty": 5,
533
713
  "topics": [
534
714
  "Maps",
@@ -540,14 +720,20 @@
540
720
  ]
541
721
  },
542
722
  {
723
+ "uuid": "5ce09233-9ec1-4422-aa97-2d90ea67146b",
543
724
  "slug": "book-store",
725
+ "core": false,
726
+ "unlocked_by": null,
544
727
  "difficulty": 5,
545
728
  "topics": [
546
729
  "Recursion"
547
730
  ]
548
731
  },
549
732
  {
733
+ "uuid": "c7838d98-35db-4a84-914e-c05cafda2bed",
550
734
  "slug": "nth-prime",
735
+ "core": false,
736
+ "unlocked_by": null,
551
737
  "difficulty": 6,
552
738
  "topics": [
553
739
  "Optional values",
@@ -556,7 +742,10 @@
556
742
  ]
557
743
  },
558
744
  {
745
+ "uuid": "fc57c00f-ca56-499d-bb46-0ce006b60923",
559
746
  "slug": "palindrome-products",
747
+ "core": false,
748
+ "unlocked_by": null,
560
749
  "difficulty": 6,
561
750
  "topics": [
562
751
  "Sets",
@@ -566,7 +755,10 @@
566
755
  ]
567
756
  },
568
757
  {
758
+ "uuid": "221be13e-da2a-4f0a-9702-84744cbcaca6",
569
759
  "slug": "ocr-numbers",
760
+ "core": false,
761
+ "unlocked_by": null,
570
762
  "difficulty": 6,
571
763
  "topics": [
572
764
  "Lists",
@@ -577,7 +769,10 @@
577
769
  ]
578
770
  },
579
771
  {
772
+ "uuid": "088e1441-a648-4dc4-ad13-c5fdd8e8a104",
580
773
  "slug": "pig-latin",
774
+ "core": false,
775
+ "unlocked_by": null,
581
776
  "difficulty": 6,
582
777
  "topics": [
583
778
  "Strings",
@@ -585,7 +780,10 @@
585
780
  ]
586
781
  },
587
782
  {
783
+ "uuid": "f70d2b0c-9660-4538-9897-2f233b93d0c3",
588
784
  "slug": "binary-search-tree",
785
+ "core": false,
786
+ "unlocked_by": null,
589
787
  "difficulty": 6,
590
788
  "topics": [
591
789
  "Searching",
@@ -595,7 +793,10 @@
595
793
  ]
596
794
  },
597
795
  {
796
+ "uuid": "755b5cf5-97f2-41c1-9b0b-24e6db68b7eb",
598
797
  "slug": "rail-fence-cipher",
798
+ "core": false,
799
+ "unlocked_by": null,
599
800
  "difficulty": 6,
600
801
  "topics": [
601
802
  "Strings",
@@ -604,7 +805,10 @@
604
805
  ]
605
806
  },
606
807
  {
808
+ "uuid": "9ea2b27f-4c3a-463d-8869-4e930808ce93",
607
809
  "slug": "bowling",
810
+ "core": false,
811
+ "unlocked_by": null,
608
812
  "difficulty": 6,
609
813
  "topics": [
610
814
  "Algorithms",
@@ -613,7 +817,10 @@
613
817
  ]
614
818
  },
615
819
  {
820
+ "uuid": "d619cdc2-b8b7-442d-a2b2-41383c33d219",
616
821
  "slug": "dominoes",
822
+ "core": false,
823
+ "unlocked_by": null,
617
824
  "difficulty": 7,
618
825
  "topics": [
619
826
  "Lists",
@@ -623,7 +830,10 @@
623
830
  ]
624
831
  },
625
832
  {
833
+ "uuid": "00a09826-f63b-4558-8ad0-6cdb7836dfea",
626
834
  "slug": "sublist",
835
+ "core": false,
836
+ "unlocked_by": null,
627
837
  "difficulty": 7,
628
838
  "topics": [
629
839
  "Generics",
@@ -632,7 +842,10 @@
632
842
  ]
633
843
  },
634
844
  {
845
+ "uuid": "04c3197c-cd3d-4853-af3f-50c189af80c7",
635
846
  "slug": "minesweeper",
847
+ "core": false,
848
+ "unlocked_by": null,
636
849
  "difficulty": 7,
637
850
  "topics": [
638
851
  "Lists",
@@ -642,7 +855,10 @@
642
855
  ]
643
856
  },
644
857
  {
858
+ "uuid": "ded3ae4c-43a7-46df-b43b-42aab419c2d8",
645
859
  "slug": "wordy",
860
+ "core": false,
861
+ "unlocked_by": null,
646
862
  "difficulty": 7,
647
863
  "topics": [
648
864
  "Mathematics",
@@ -653,7 +869,10 @@
653
869
  ]
654
870
  },
655
871
  {
872
+ "uuid": "62dd342a-591c-497f-8f3a-64748952b1af",
656
873
  "slug": "change",
874
+ "core": false,
875
+ "unlocked_by": null,
657
876
  "difficulty": 7,
658
877
  "topics": [
659
878
  "Integers",
@@ -663,7 +882,10 @@
663
882
  ]
664
883
  },
665
884
  {
885
+ "uuid": "5ea6b0e1-513e-462f-9741-46f060638a92",
666
886
  "slug": "connect",
887
+ "core": false,
888
+ "unlocked_by": null,
667
889
  "difficulty": 8,
668
890
  "topics": [
669
891
  "Recursion",
@@ -675,14 +897,20 @@
675
897
  ]
676
898
  },
677
899
  {
900
+ "uuid": "eb9387d6-3fac-460b-ad14-657c0f4d2d88",
678
901
  "slug": "zebra-puzzle",
902
+ "core": false,
903
+ "unlocked_by": null,
679
904
  "difficulty": 8,
680
905
  "topics": [
681
906
  "Logic"
682
907
  ]
683
908
  },
684
909
  {
910
+ "uuid": "e0e0ef68-6759-42e3-8542-3d165f8900d7",
685
911
  "slug": "say",
912
+ "core": false,
913
+ "unlocked_by": null,
686
914
  "difficulty": 8,
687
915
  "topics": [
688
916
  "Strings",
@@ -692,7 +920,10 @@
692
920
  ]
693
921
  },
694
922
  {
923
+ "uuid": "64002f5b-e373-4850-92bf-88461d49376e",
695
924
  "slug": "alphametics",
925
+ "core": false,
926
+ "unlocked_by": null,
696
927
  "difficulty": 9,
697
928
  "topics": [
698
929
  "Maps",
@@ -702,7 +933,10 @@
702
933
  ]
703
934
  },
704
935
  {
936
+ "uuid": "8b4c7142-6790-4d89-a5cb-fa094e2c969a",
705
937
  "slug": "sgf-parsing",
938
+ "core": false,
939
+ "unlocked_by": null,
706
940
  "difficulty": 9,
707
941
  "topics": [
708
942
  "Parsing",
@@ -710,14 +944,20 @@
710
944
  ]
711
945
  },
712
946
  {
947
+ "uuid": "e6e88c52-b984-479d-8b9c-047d25f2aa47",
713
948
  "slug": "lens-person",
949
+ "core": false,
950
+ "unlocked_by": null,
714
951
  "difficulty": 9,
715
952
  "topics": [
716
953
 
717
954
  ]
718
955
  },
719
956
  {
957
+ "uuid": "12dbe514-848b-4fd2-868d-7f6195092e23",
720
958
  "slug": "variable-length-quantity",
959
+ "core": false,
960
+ "unlocked_by": null,
721
961
  "difficulty": 9,
722
962
  "topics": [
723
963
  "Discriminated unions",
@@ -727,7 +967,10 @@
727
967
  ]
728
968
  },
729
969
  {
970
+ "uuid": "bc5b07e2-f641-4fda-818d-12502cdbb066",
730
971
  "slug": "zipper",
972
+ "core": false,
973
+ "unlocked_by": null,
731
974
  "difficulty": 10,
732
975
  "topics": [
733
976
  "Generics",
@@ -736,21 +979,38 @@
736
979
  ]
737
980
  },
738
981
  {
982
+ "uuid": "2c85199f-4d09-485b-9925-3b21f81ee054",
739
983
  "slug": "forth",
984
+ "core": false,
985
+ "unlocked_by": null,
740
986
  "difficulty": 10,
741
987
  "topics": [
742
988
  "Strings",
743
989
  "Mathematics",
744
990
  "Parsing"
745
991
  ]
992
+ },
993
+ {
994
+ "uuid": "6cc53fdc-4423-47fe-abac-7688259b0ac5",
995
+ "slug": "binary",
996
+ "deprecated": true
997
+ },
998
+ {
999
+ "uuid": "7c949a14-70dc-4034-874f-0c9e3217fcf8",
1000
+ "slug": "hexadecimal",
1001
+ "deprecated": true
1002
+ },
1003
+ {
1004
+ "uuid": "403063a8-9f29-409a-8bf4-a2400521e19b",
1005
+ "slug": "octal",
1006
+ "deprecated": true
1007
+ },
1008
+ {
1009
+ "uuid": "616e49fe-b6eb-4384-9af4-b8413d4d0eab",
1010
+ "slug": "trinary",
1011
+ "deprecated": true
746
1012
  }
747
1013
  ],
748
- "deprecated": [
749
- "binary",
750
- "hexadecimal",
751
- "octal",
752
- "trinary"
753
- ],
754
1014
  "foregone": [
755
1015
 
756
1016
  ]