trackler 2.2.0.2 → 2.2.0.3

Sign up to get free protection for your applications and to get access to all the features.
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
  ]