trackler 2.2.0.3 → 2.2.0.4

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 (463) hide show
  1. checksums.yaml +4 -4
  2. data/lib/trackler/version.rb +1 -1
  3. data/problem-specifications/exercises/list-ops/canonical-data.json +27 -11
  4. data/problem-specifications/exercises/rotational-cipher/canonical-data.json +8 -8
  5. data/tracks/clojure/config.json +240 -63
  6. data/tracks/cpp/CMakeLists.txt +1 -0
  7. data/tracks/cpp/config.json +8 -0
  8. data/tracks/cpp/exercises/bracket-push/CMakeLists.txt +52 -0
  9. data/tracks/cpp/exercises/bracket-push/bracket_push_test.cpp +75 -0
  10. data/tracks/cpp/exercises/bracket-push/example.cpp +28 -0
  11. data/tracks/cpp/exercises/bracket-push/example.h +13 -0
  12. data/tracks/ecmascript/config.json +235 -71
  13. data/tracks/ecmascript/config/exercise_readme.go.tmpl +16 -0
  14. data/tracks/ecmascript/exercises/accumulate/README.md +65 -0
  15. data/tracks/ecmascript/exercises/acronym/README.md +45 -0
  16. data/tracks/ecmascript/exercises/all-your-base/README.md +65 -0
  17. data/tracks/ecmascript/exercises/allergies/README.md +67 -0
  18. data/tracks/ecmascript/exercises/alphametics/README.md +65 -0
  19. data/tracks/ecmascript/exercises/anagram/README.md +43 -0
  20. data/tracks/ecmascript/exercises/atbash-cipher/README.md +64 -0
  21. data/tracks/ecmascript/exercises/beer-song/README.md +357 -0
  22. data/tracks/ecmascript/exercises/binary-search-tree/README.md +90 -0
  23. data/tracks/ecmascript/exercises/binary-search/README.md +71 -0
  24. data/tracks/ecmascript/exercises/binary/README.md +65 -0
  25. data/tracks/ecmascript/exercises/bob/README.md +48 -0
  26. data/tracks/ecmascript/exercises/bracket-push/README.md +40 -0
  27. data/tracks/ecmascript/exercises/circular-buffer/README.md +80 -0
  28. data/tracks/ecmascript/exercises/clock/README.md +43 -0
  29. data/tracks/ecmascript/exercises/connect/README.md +64 -0
  30. data/tracks/ecmascript/exercises/crypto-square/README.md +104 -0
  31. data/tracks/ecmascript/exercises/custom-set/README.md +41 -0
  32. data/tracks/ecmascript/exercises/diamond/README.md +89 -0
  33. data/tracks/ecmascript/exercises/difference-of-squares/README.md +49 -0
  34. data/tracks/ecmascript/exercises/diffie-hellman/README.md +74 -0
  35. data/tracks/ecmascript/exercises/etl/README.md +81 -0
  36. data/tracks/ecmascript/exercises/flatten-array/README.md +48 -0
  37. data/tracks/ecmascript/exercises/food-chain/README.md +100 -0
  38. data/tracks/ecmascript/exercises/gigasecond/README.md +41 -0
  39. data/tracks/ecmascript/exercises/grade-school/README.md +72 -0
  40. data/tracks/ecmascript/exercises/grains/README.md +64 -0
  41. data/tracks/ecmascript/exercises/hamming/README.md +72 -0
  42. data/tracks/ecmascript/exercises/hello-world/README.md +51 -0
  43. data/tracks/ecmascript/exercises/hexadecimal/README.md +44 -0
  44. data/tracks/ecmascript/exercises/isogram/README.md +49 -0
  45. data/tracks/ecmascript/exercises/kindergarten-garden/README.md +96 -0
  46. data/tracks/ecmascript/exercises/largest-series-product/README.md +50 -0
  47. data/tracks/ecmascript/exercises/leap/README.md +63 -0
  48. data/tracks/ecmascript/exercises/linked-list/README.md +64 -0
  49. data/tracks/ecmascript/exercises/list-ops/README.md +40 -0
  50. data/tracks/ecmascript/exercises/luhn/README.md +101 -0
  51. data/tracks/ecmascript/exercises/matrix/README.md +75 -0
  52. data/tracks/ecmascript/exercises/meetup/README.md +60 -0
  53. data/tracks/ecmascript/exercises/minesweeper/README.md +60 -0
  54. data/tracks/ecmascript/exercises/nth-prime/README.md +45 -0
  55. data/tracks/ecmascript/exercises/ocr-numbers/README.md +115 -0
  56. data/tracks/ecmascript/exercises/octal/README.md +79 -0
  57. data/tracks/ecmascript/exercises/palindrome-products/README.md +70 -0
  58. data/tracks/ecmascript/exercises/pangram/README.md +45 -0
  59. data/tracks/ecmascript/exercises/pascals-triangle/README.md +51 -0
  60. data/tracks/ecmascript/exercises/perfect-numbers/README.md +54 -0
  61. data/tracks/ecmascript/exercises/phone-number/README.md +64 -0
  62. data/tracks/ecmascript/exercises/pig-latin/README.md +54 -0
  63. data/tracks/ecmascript/exercises/prime-factors/README.md +66 -0
  64. data/tracks/ecmascript/exercises/pythagorean-triplet/README.md +54 -0
  65. data/tracks/ecmascript/exercises/queen-attack/README.md +63 -0
  66. data/tracks/ecmascript/exercises/raindrops/README.md +54 -0
  67. data/tracks/ecmascript/exercises/rna-transcription/README.md +55 -0
  68. data/tracks/ecmascript/exercises/robot-name/README.md +52 -0
  69. data/tracks/ecmascript/exercises/robot-simulator/README.md +64 -0
  70. data/tracks/ecmascript/exercises/roman-numerals/README.md +79 -0
  71. data/tracks/ecmascript/exercises/saddle-points/README.md +63 -0
  72. data/tracks/ecmascript/exercises/say/README.md +99 -0
  73. data/tracks/ecmascript/exercises/scrabble-score/README.md +74 -0
  74. data/tracks/ecmascript/exercises/secret-handshake/README.md +65 -0
  75. data/tracks/ecmascript/exercises/series/README.md +57 -0
  76. data/tracks/ecmascript/exercises/sieve/README.md +64 -0
  77. data/tracks/ecmascript/exercises/simple-cipher/README.md +120 -0
  78. data/tracks/ecmascript/exercises/space-age/README.md +54 -0
  79. data/tracks/ecmascript/exercises/strain/README.md +70 -0
  80. data/tracks/ecmascript/exercises/sublist/README.md +50 -0
  81. data/tracks/ecmascript/exercises/sublist/example.js +30 -0
  82. data/tracks/ecmascript/exercises/sublist/package.json +69 -0
  83. data/tracks/ecmascript/exercises/sublist/sublist.spec.js +126 -0
  84. data/tracks/ecmascript/exercises/sum-of-multiples/README.md +48 -0
  85. data/tracks/ecmascript/exercises/triangle/README.md +56 -0
  86. data/tracks/ecmascript/exercises/trinary/README.md +58 -0
  87. data/tracks/ecmascript/exercises/two-bucket/README.md +66 -0
  88. data/tracks/ecmascript/exercises/word-count/README.md +49 -0
  89. data/tracks/ecmascript/exercises/wordy/README.md +93 -0
  90. data/tracks/go/.gitignore +1 -0
  91. data/tracks/go/README.md +2 -0
  92. data/tracks/go/config/exercise_readme.go.tmpl +16 -0
  93. data/tracks/go/exercises/accumulate/README.md +53 -0
  94. data/tracks/go/exercises/acronym/README.md +33 -0
  95. data/tracks/go/exercises/all-your-base/README.md +53 -0
  96. data/tracks/go/exercises/allergies/README.md +55 -0
  97. data/tracks/go/exercises/anagram/README.md +31 -0
  98. data/tracks/go/exercises/atbash-cipher/README.md +52 -0
  99. data/tracks/go/exercises/bank-account/README.md +48 -0
  100. data/tracks/go/exercises/beer-song/README.md +345 -0
  101. data/tracks/go/exercises/binary-search-tree/README.md +78 -0
  102. data/tracks/go/exercises/binary-search/README.md +59 -0
  103. data/tracks/go/exercises/binary/README.md +53 -0
  104. data/tracks/go/exercises/bob/README.md +36 -0
  105. data/tracks/go/exercises/bowling/README.md +71 -0
  106. data/tracks/go/exercises/bracket-push/README.md +28 -0
  107. data/tracks/go/exercises/change/README.md +41 -0
  108. data/tracks/go/exercises/circular-buffer/README.md +68 -0
  109. data/tracks/go/exercises/clock/README.md +31 -0
  110. data/tracks/go/exercises/connect/README.md +52 -0
  111. data/tracks/go/exercises/counter/README.md +42 -0
  112. data/tracks/go/exercises/crypto-square/README.md +92 -0
  113. data/tracks/go/exercises/custom-set/README.md +29 -0
  114. data/tracks/go/exercises/diamond/README.md +77 -0
  115. data/tracks/go/exercises/difference-of-squares/README.md +37 -0
  116. data/tracks/go/exercises/diffie-hellman/README.md +62 -0
  117. data/tracks/go/exercises/error-handling/README.md +31 -0
  118. data/tracks/go/exercises/etl/README.md +69 -0
  119. data/tracks/go/exercises/food-chain/README.md +88 -0
  120. data/tracks/go/exercises/forth/README.md +47 -0
  121. data/tracks/go/exercises/gigasecond/README.md +29 -0
  122. data/tracks/go/exercises/grade-school/README.md +60 -0
  123. data/tracks/go/exercises/grains/README.md +52 -0
  124. data/tracks/go/exercises/hamming/README.md +60 -0
  125. data/tracks/go/exercises/hello-world/README.md +39 -0
  126. data/tracks/go/exercises/hexadecimal/README.md +32 -0
  127. data/tracks/go/exercises/house/README.md +131 -0
  128. data/tracks/go/exercises/isogram/README.md +37 -0
  129. data/tracks/go/exercises/kindergarten-garden/README.md +84 -0
  130. data/tracks/go/exercises/largest-series-product/README.md +38 -0
  131. data/tracks/go/exercises/leap/README.md +51 -0
  132. data/tracks/go/exercises/ledger/README.md +36 -0
  133. data/tracks/go/exercises/luhn/README.md +89 -0
  134. data/tracks/go/exercises/matrix/README.md +63 -0
  135. data/tracks/go/exercises/meetup/README.md +48 -0
  136. data/tracks/go/exercises/minesweeper/README.md +48 -0
  137. data/tracks/go/exercises/nth-prime/README.md +33 -0
  138. data/tracks/go/exercises/nucleotide-count/README.md +51 -0
  139. data/tracks/go/exercises/ocr-numbers/README.md +103 -0
  140. data/tracks/go/exercises/octal/README.md +67 -0
  141. data/tracks/go/exercises/paasio/README.md +38 -0
  142. data/tracks/go/exercises/palindrome-products/README.md +58 -0
  143. data/tracks/go/exercises/pangram/README.md +33 -0
  144. data/tracks/go/exercises/parallel-letter-frequency/README.md +29 -0
  145. data/tracks/go/exercises/pascals-triangle/README.md +39 -0
  146. data/tracks/go/exercises/perfect-numbers/README.md +42 -0
  147. data/tracks/go/exercises/phone-number/README.md +52 -0
  148. data/tracks/go/exercises/pig-latin/README.md +42 -0
  149. data/tracks/go/exercises/poker/README.md +30 -0
  150. data/tracks/go/exercises/pov/README.md +64 -0
  151. data/tracks/go/exercises/prime-factors/README.md +54 -0
  152. data/tracks/go/exercises/protein-translation/README.md +67 -0
  153. data/tracks/go/exercises/pythagorean-triplet/README.md +42 -0
  154. data/tracks/go/exercises/queen-attack/README.md +51 -0
  155. data/tracks/go/exercises/raindrops/README.md +42 -0
  156. data/tracks/go/exercises/react/README.md +37 -0
  157. data/tracks/go/exercises/rna-transcription/README.md +43 -0
  158. data/tracks/go/exercises/robot-name/README.md +40 -0
  159. data/tracks/go/exercises/robot-simulator/README.md +52 -0
  160. data/tracks/go/exercises/roman-numerals/README.md +67 -0
  161. data/tracks/go/exercises/saddle-points/README.md +51 -0
  162. data/tracks/go/exercises/say/README.md +87 -0
  163. data/tracks/go/exercises/scrabble-score/README.md +62 -0
  164. data/tracks/go/exercises/secret-handshake/README.md +53 -0
  165. data/tracks/go/exercises/series/README.md +45 -0
  166. data/tracks/go/exercises/sieve/README.md +52 -0
  167. data/tracks/go/exercises/simple-cipher/README.md +108 -0
  168. data/tracks/go/exercises/strain/README.md +58 -0
  169. data/tracks/go/exercises/sum-of-multiples/README.md +36 -0
  170. data/tracks/go/exercises/tournament/README.md +86 -0
  171. data/tracks/go/exercises/transpose/README.md +83 -0
  172. data/tracks/go/exercises/tree-building/README.md +48 -0
  173. data/tracks/go/exercises/triangle/README.md +44 -0
  174. data/tracks/go/exercises/trinary/README.md +46 -0
  175. data/tracks/go/exercises/twelve-days/README.md +57 -0
  176. data/tracks/go/exercises/variable-length-quantity/README.md +57 -0
  177. data/tracks/go/exercises/word-count/README.md +37 -0
  178. data/tracks/go/exercises/word-search/README.md +48 -0
  179. data/tracks/go/exercises/wordy/README.md +81 -0
  180. data/tracks/haskell/README.md +2 -2
  181. data/tracks/haskell/exercises/beer-song/test/Tests.hs +1 -1
  182. data/tracks/haskell/exercises/food-chain/test/Tests.hs +1 -1
  183. data/tracks/haskell/exercises/house/test/Tests.hs +1 -1
  184. data/tracks/haskell/exercises/say/test/Tests.hs +1 -1
  185. data/tracks/java/config.json +10 -10
  186. data/tracks/java/exercises/rotational-cipher/src/example/java/RotationalCipher.java +5 -8
  187. data/tracks/java/exercises/rotational-cipher/src/test/java/RotationalCipherTest.java +3 -6
  188. data/tracks/javascript/config.json +397 -140
  189. data/tracks/kotlin/config.json +248 -63
  190. data/tracks/kotlin/config/exercise_readme.go.tmpl +16 -0
  191. data/tracks/kotlin/exercises/accumulate/README.md +38 -0
  192. data/tracks/kotlin/exercises/acronym/README.md +18 -0
  193. data/tracks/kotlin/exercises/all-your-base/README.md +38 -0
  194. data/tracks/kotlin/exercises/allergies/README.md +40 -0
  195. data/tracks/kotlin/exercises/anagram/README.md +16 -0
  196. data/tracks/kotlin/exercises/atbash-cipher/README.md +37 -0
  197. data/tracks/kotlin/exercises/bank-account/README.md +33 -0
  198. data/tracks/kotlin/exercises/beer-song/README.md +330 -0
  199. data/tracks/kotlin/exercises/binary-search/README.md +44 -0
  200. data/tracks/kotlin/exercises/binary/README.md +38 -0
  201. data/tracks/kotlin/exercises/bob/README.md +21 -0
  202. data/tracks/kotlin/exercises/bracket-push/README.md +13 -0
  203. data/tracks/kotlin/exercises/change/README.md +26 -0
  204. data/tracks/kotlin/exercises/clock/README.md +16 -0
  205. data/tracks/kotlin/exercises/collatz-conjecture/README.md +36 -0
  206. data/tracks/kotlin/exercises/complex-numbers/README.md +14 -0
  207. data/tracks/kotlin/exercises/diamond/README.md +62 -0
  208. data/tracks/kotlin/exercises/difference-of-squares/README.md +22 -0
  209. data/tracks/kotlin/exercises/etl/README.md +54 -0
  210. data/tracks/kotlin/exercises/flatten-array/README.md +21 -0
  211. data/tracks/kotlin/exercises/gigasecond/README.md +14 -0
  212. data/tracks/kotlin/exercises/grade-school/README.md +45 -0
  213. data/tracks/kotlin/exercises/grains/README.md +37 -0
  214. data/tracks/kotlin/exercises/hamming/README.md +45 -0
  215. data/tracks/kotlin/exercises/hello-world/README.md +24 -0
  216. data/tracks/kotlin/exercises/hexadecimal/README.md +17 -0
  217. data/tracks/kotlin/exercises/isogram/README.md +22 -0
  218. data/tracks/kotlin/exercises/largest-series-product/README.md +23 -0
  219. data/tracks/kotlin/exercises/leap/README.md +36 -0
  220. data/tracks/kotlin/exercises/linked-list/README.md +37 -0
  221. data/tracks/kotlin/exercises/list-ops/README.md +20 -0
  222. data/tracks/kotlin/exercises/luhn/README.md +74 -0
  223. data/tracks/kotlin/exercises/minesweeper/README.md +33 -0
  224. data/tracks/kotlin/exercises/nth-prime/README.md +18 -0
  225. data/tracks/kotlin/exercises/nucleotide-count/README.md +36 -0
  226. data/tracks/kotlin/exercises/pangram/README.md +18 -0
  227. data/tracks/kotlin/exercises/pascals-triangle/README.md +24 -0
  228. data/tracks/kotlin/exercises/perfect-numbers/README.md +27 -0
  229. data/tracks/kotlin/exercises/phone-number/README.md +37 -0
  230. data/tracks/kotlin/exercises/pig-latin/README.md +27 -0
  231. data/tracks/kotlin/exercises/prime-factors/README.md +39 -0
  232. data/tracks/kotlin/exercises/raindrops/README.md +27 -0
  233. data/tracks/kotlin/exercises/react/README.md +22 -0
  234. data/tracks/kotlin/exercises/rna-transcription/README.md +28 -0
  235. data/tracks/kotlin/exercises/robot-name/README.md +25 -0
  236. data/tracks/kotlin/exercises/robot-simulator/README.md +37 -0
  237. data/tracks/kotlin/exercises/roman-numerals/README.md +52 -0
  238. data/tracks/kotlin/exercises/saddle-points/README.md +36 -0
  239. data/tracks/kotlin/exercises/scrabble-score/README.md +47 -0
  240. data/tracks/kotlin/exercises/secret-handshake/README.md +38 -0
  241. data/tracks/kotlin/exercises/series/README.md +30 -0
  242. data/tracks/kotlin/exercises/sieve/README.md +37 -0
  243. data/tracks/kotlin/exercises/simple-cipher/README.md +93 -0
  244. data/tracks/kotlin/exercises/space-age/README.md +27 -0
  245. data/tracks/kotlin/exercises/spiral-matrix/README.md +33 -0
  246. data/tracks/kotlin/exercises/strain/README.md +43 -0
  247. data/tracks/kotlin/exercises/sublist/README.md +24 -0
  248. data/tracks/kotlin/exercises/sum-of-multiples/README.md +21 -0
  249. data/tracks/kotlin/exercises/triangle/README.md +29 -0
  250. data/tracks/kotlin/exercises/word-count/README.md +22 -0
  251. data/tracks/ocaml/config/exercise_readme.go.tmpl +16 -0
  252. data/tracks/ocaml/exercises/acronym/README.md +55 -0
  253. data/tracks/ocaml/exercises/all-your-base/README.md +75 -0
  254. data/tracks/ocaml/exercises/anagram/README.md +53 -0
  255. data/tracks/ocaml/exercises/atbash-cipher/README.md +93 -0
  256. data/tracks/ocaml/exercises/beer-song/README.md +367 -0
  257. data/tracks/ocaml/exercises/binary-search/README.md +81 -0
  258. data/tracks/ocaml/exercises/bob/README.md +87 -0
  259. data/tracks/ocaml/exercises/bowling/README.md +93 -0
  260. data/tracks/ocaml/exercises/bracket-push/README.md +50 -0
  261. data/tracks/ocaml/exercises/change/README.md +63 -0
  262. data/tracks/ocaml/exercises/connect/README.md +74 -0
  263. data/tracks/ocaml/exercises/custom-set/README.md +51 -0
  264. data/tracks/ocaml/exercises/difference-of-squares/README.md +59 -0
  265. data/tracks/ocaml/exercises/dominoes/README.md +58 -0
  266. data/tracks/ocaml/exercises/etl/README.md +91 -0
  267. data/tracks/ocaml/exercises/forth/README.md +69 -0
  268. data/tracks/ocaml/exercises/grade-school/README.md +82 -0
  269. data/tracks/ocaml/exercises/hamming/README.md +82 -0
  270. data/tracks/ocaml/exercises/hangman/README.md +61 -0
  271. data/tracks/ocaml/exercises/hello-world/README.md +61 -0
  272. data/tracks/ocaml/exercises/hexadecimal/README.md +54 -0
  273. data/tracks/ocaml/exercises/leap/README.md +73 -0
  274. data/tracks/ocaml/exercises/list-ops/README.md +50 -0
  275. data/tracks/ocaml/exercises/luhn/README.md +111 -0
  276. data/tracks/ocaml/exercises/meetup/README.md +70 -0
  277. data/tracks/ocaml/exercises/minesweeper/README.md +70 -0
  278. data/tracks/ocaml/exercises/nucleotide-count/README.md +73 -0
  279. data/tracks/ocaml/exercises/pangram/README.md +55 -0
  280. data/tracks/ocaml/exercises/phone-number/README.md +74 -0
  281. data/tracks/ocaml/exercises/point-mutations/README.md +81 -0
  282. data/tracks/ocaml/exercises/prime-factors/README.md +76 -0
  283. data/tracks/ocaml/exercises/raindrops/README.md +64 -0
  284. data/tracks/ocaml/exercises/react/README.md +59 -0
  285. data/tracks/ocaml/exercises/rna-transcription/README.md +65 -0
  286. data/tracks/ocaml/exercises/robot-name/README.md +62 -0
  287. data/tracks/ocaml/exercises/roman-numerals/README.md +89 -0
  288. data/tracks/ocaml/exercises/run-length-encoding/README.md +70 -0
  289. data/tracks/ocaml/exercises/say/README.md +109 -0
  290. data/tracks/ocaml/exercises/space-age/README.md +64 -0
  291. data/tracks/ocaml/exercises/triangle/README.md +66 -0
  292. data/tracks/ocaml/exercises/word-count/README.md +59 -0
  293. data/tracks/ocaml/exercises/zipper/README.md +71 -0
  294. data/tracks/perl5/README.md +1 -1
  295. data/tracks/perl5/config/exercise_readme.go.tmpl +16 -0
  296. data/tracks/perl5/exercises/accumulate/README.md +35 -0
  297. data/tracks/perl5/exercises/all-your-base/README.md +35 -0
  298. data/tracks/perl5/exercises/allergies/README.md +37 -0
  299. data/tracks/perl5/exercises/anagram/README.md +13 -0
  300. data/tracks/perl5/exercises/atbash-cipher/README.md +34 -0
  301. data/tracks/perl5/exercises/beer-song/README.md +327 -0
  302. data/tracks/perl5/exercises/binary-search-tree/README.md +60 -0
  303. data/tracks/perl5/exercises/binary-search/README.md +41 -0
  304. data/tracks/perl5/exercises/binary/README.md +35 -0
  305. data/tracks/perl5/exercises/bob/README.md +18 -0
  306. data/tracks/perl5/exercises/clock/README.md +13 -0
  307. data/tracks/perl5/exercises/crypto-square/README.md +74 -0
  308. data/tracks/perl5/exercises/custom-set/README.md +11 -0
  309. data/tracks/perl5/exercises/difference-of-squares/README.md +19 -0
  310. data/tracks/perl5/exercises/etl/README.md +51 -0
  311. data/tracks/perl5/exercises/food-chain/README.md +70 -0
  312. data/tracks/perl5/exercises/gigasecond/README.md +11 -0
  313. data/tracks/perl5/exercises/grade-school/README.md +42 -0
  314. data/tracks/perl5/exercises/grains/README.md +34 -0
  315. data/tracks/perl5/exercises/hamming/README.md +42 -0
  316. data/tracks/perl5/exercises/hello-world/README.md +21 -0
  317. data/tracks/perl5/exercises/hexadecimal/README.md +14 -0
  318. data/tracks/perl5/exercises/house/README.md +113 -0
  319. data/tracks/perl5/exercises/kindergarten-garden/README.md +66 -0
  320. data/tracks/perl5/exercises/largest-series-product/README.md +20 -0
  321. data/tracks/perl5/exercises/leap/README.md +33 -0
  322. data/tracks/perl5/exercises/linked-list/README.md +34 -0
  323. data/tracks/perl5/exercises/list-ops/README.md +10 -0
  324. data/tracks/perl5/exercises/luhn/Example.pm +20 -42
  325. data/tracks/perl5/exercises/luhn/Luhn.pm +9 -0
  326. data/tracks/perl5/exercises/luhn/README.md +71 -0
  327. data/tracks/perl5/exercises/luhn/example.yaml +38 -0
  328. data/tracks/perl5/exercises/luhn/luhn.t +127 -26
  329. data/tracks/perl5/exercises/matrix/README.md +45 -0
  330. data/tracks/perl5/exercises/meetup/README.md +30 -0
  331. data/tracks/perl5/exercises/minesweeper/README.md +30 -0
  332. data/tracks/perl5/exercises/nucleotide-count/README.md +33 -0
  333. data/tracks/perl5/exercises/ocr-numbers/README.md +85 -0
  334. data/tracks/perl5/exercises/palindrome-products/README.md +40 -0
  335. data/tracks/perl5/exercises/pascals-triangle/README.md +21 -0
  336. data/tracks/perl5/exercises/phone-number/Example.pm +6 -26
  337. data/tracks/perl5/exercises/phone-number/PhoneNumber.pm +5 -0
  338. data/tracks/perl5/exercises/phone-number/README.md +34 -0
  339. data/tracks/perl5/exercises/phone-number/example.yaml +15 -0
  340. data/tracks/perl5/exercises/phone-number/phone-number.t +138 -0
  341. data/tracks/perl5/exercises/pig-latin/README.md +24 -0
  342. data/tracks/perl5/exercises/point-mutations/README.md +41 -0
  343. data/tracks/perl5/exercises/prime-factors/README.md +36 -0
  344. data/tracks/perl5/exercises/proverb/README.md +18 -0
  345. data/tracks/perl5/exercises/pythagorean-triplet/README.md +24 -0
  346. data/tracks/perl5/exercises/queen-attack/README.md +33 -0
  347. data/tracks/perl5/exercises/raindrops/README.md +24 -0
  348. data/tracks/perl5/exercises/rna-transcription/README.md +25 -0
  349. data/tracks/perl5/exercises/robot-name/README.md +22 -0
  350. data/tracks/perl5/exercises/robot-simulator/README.md +34 -0
  351. data/tracks/perl5/exercises/roman-numerals/README.md +49 -0
  352. data/tracks/perl5/exercises/saddle-points/README.md +33 -0
  353. data/tracks/perl5/exercises/say/README.md +69 -0
  354. data/tracks/perl5/exercises/scrabble-score/README.md +44 -0
  355. data/tracks/perl5/exercises/secret-handshake/README.md +35 -0
  356. data/tracks/perl5/exercises/series/README.md +27 -0
  357. data/tracks/perl5/exercises/sieve/README.md +34 -0
  358. data/tracks/perl5/exercises/simple-cipher/README.md +90 -0
  359. data/tracks/perl5/exercises/simple-linked-list/README.md +28 -0
  360. data/tracks/perl5/exercises/space-age/README.md +24 -0
  361. data/tracks/perl5/exercises/strain/README.md +40 -0
  362. data/tracks/perl5/exercises/sublist/README.md +21 -0
  363. data/tracks/perl5/exercises/sum-of-multiples/README.md +18 -0
  364. data/tracks/perl5/exercises/triangle/README.md +26 -0
  365. data/tracks/perl5/exercises/trinary/README.md +28 -0
  366. data/tracks/perl5/exercises/twelve-days/README.md +35 -0
  367. data/tracks/perl5/exercises/word-count/README.md +19 -0
  368. data/tracks/perl5/exercises/wordy/README.md +63 -0
  369. data/tracks/perl6/README.md +1 -1
  370. data/tracks/perl6/config/exercise_readme.go.tmpl +16 -0
  371. data/tracks/perl6/exercises/accumulate/README.md +50 -0
  372. data/tracks/perl6/exercises/all-your-base/README.md +50 -0
  373. data/tracks/perl6/exercises/allergies/README.md +52 -0
  374. data/tracks/perl6/exercises/anagram/README.md +28 -0
  375. data/tracks/perl6/exercises/atbash-cipher/README.md +49 -0
  376. data/tracks/perl6/exercises/binary/README.md +50 -0
  377. data/tracks/perl6/exercises/bob/README.md +33 -0
  378. data/tracks/perl6/exercises/clock/README.md +28 -0
  379. data/tracks/perl6/exercises/flatten-array/README.md +33 -0
  380. data/tracks/perl6/exercises/grade-school/README.md +57 -0
  381. data/tracks/perl6/exercises/grains/README.md +49 -0
  382. data/tracks/perl6/exercises/hello-world/README.md +36 -0
  383. data/tracks/perl6/exercises/leap/README.md +48 -0
  384. data/tracks/perl6/exercises/linked-list/README.md +49 -0
  385. data/tracks/perl6/exercises/linked-list/example.yaml +1 -1
  386. data/tracks/perl6/exercises/linked-list/linked-list.t +1 -1
  387. data/tracks/perl6/exercises/luhn/README.md +86 -0
  388. data/tracks/perl6/exercises/phone-number/README.md +49 -0
  389. data/tracks/perl6/exercises/raindrops/README.md +39 -0
  390. data/tracks/perl6/exercises/rna-transcription/README.md +40 -0
  391. data/tracks/perl6/exercises/robot-name/README.md +37 -0
  392. data/tracks/perl6/exercises/scrabble-score/README.md +59 -0
  393. data/tracks/perl6/exercises/space-age/README.md +39 -0
  394. data/tracks/perl6/exercises/trinary/README.md +43 -0
  395. data/tracks/perl6/exercises/word-count/README.md +34 -0
  396. data/tracks/perl6/exercises/wordy/README.md +78 -0
  397. data/tracks/php/config.json +156 -3
  398. data/tracks/php/config/exercise_readme.go.tmpl +16 -0
  399. data/tracks/php/exercises/accumulate/README.md +50 -0
  400. data/tracks/php/exercises/acronym/README.md +30 -0
  401. data/tracks/php/exercises/allergies/README.md +52 -0
  402. data/tracks/php/exercises/anagram/README.md +28 -0
  403. data/tracks/php/exercises/atbash-cipher/README.md +49 -0
  404. data/tracks/php/exercises/beer-song/README.md +342 -0
  405. data/tracks/php/exercises/binary-search/README.md +56 -0
  406. data/tracks/php/exercises/binary/README.md +50 -0
  407. data/tracks/php/exercises/bob/README.md +36 -0
  408. data/tracks/php/exercises/book-store/README.md +89 -0
  409. data/tracks/php/exercises/bowling/README.md +68 -0
  410. data/tracks/php/exercises/bracket-push/README.md +25 -0
  411. data/tracks/php/exercises/change/README.md +38 -0
  412. data/tracks/php/exercises/clock/README.md +28 -0
  413. data/tracks/php/exercises/connect/README.md +49 -0
  414. data/tracks/php/exercises/difference-of-squares/README.md +34 -0
  415. data/tracks/php/exercises/etl/README.md +66 -0
  416. data/tracks/php/exercises/gigasecond/README.md +26 -0
  417. data/tracks/php/exercises/grade-school/README.md +57 -0
  418. data/tracks/php/exercises/grains/README.md +49 -0
  419. data/tracks/php/exercises/hamming/README.md +57 -0
  420. data/tracks/php/exercises/hello-world/README.md +36 -0
  421. data/tracks/php/exercises/isogram/README.md +34 -0
  422. data/tracks/php/exercises/largest-series-product/README.md +35 -0
  423. data/tracks/php/exercises/leap/README.md +48 -0
  424. data/tracks/php/exercises/luhn/README.md +86 -0
  425. data/tracks/php/exercises/markdown/README.md +33 -0
  426. data/tracks/php/exercises/minesweeper/README.md +45 -0
  427. data/tracks/php/exercises/nth-prime/README.md +30 -0
  428. data/tracks/php/exercises/nucleotide-count/README.md +48 -0
  429. data/tracks/php/exercises/ocr-numbers/README.md +100 -0
  430. data/tracks/php/exercises/pangram/README.md +30 -0
  431. data/tracks/php/exercises/pascals-triangle/README.md +36 -0
  432. data/tracks/php/exercises/perfect-numbers/README.md +39 -0
  433. data/tracks/php/exercises/phone-number/README.md +49 -0
  434. data/tracks/php/exercises/pig-latin/README.md +39 -0
  435. data/tracks/php/exercises/prime-factors/README.md +51 -0
  436. data/tracks/php/exercises/queen-attack/README.md +48 -0
  437. data/tracks/php/exercises/raindrops/README.md +39 -0
  438. data/tracks/php/exercises/rna-transcription/README.md +40 -0
  439. data/tracks/php/exercises/robot-name/README.md +37 -0
  440. data/tracks/php/exercises/robot-simulator/README.md +49 -0
  441. data/tracks/php/exercises/roman-numerals/README.md +64 -0
  442. data/tracks/php/exercises/scrabble-score/README.md +59 -0
  443. data/tracks/php/exercises/sieve/README.md +49 -0
  444. data/tracks/php/exercises/space-age/README.md +39 -0
  445. data/tracks/php/exercises/sum-of-multiples/README.md +33 -0
  446. data/tracks/php/exercises/triangle/README.md +41 -0
  447. data/tracks/php/exercises/trinary/README.md +43 -0
  448. data/tracks/php/exercises/variable-length-quantity/README.md +54 -0
  449. data/tracks/php/exercises/word-count/README.md +34 -0
  450. data/tracks/php/exercises/wordy/README.md +78 -0
  451. data/tracks/rust/exercises/grains/tests/grains.rs +0 -1
  452. data/tracks/sml/config/exercise_readme.go.tmpl +16 -0
  453. data/tracks/sml/exercises/accumulate/README.md +49 -0
  454. data/tracks/sml/exercises/allergies/README.md +51 -0
  455. data/tracks/sml/exercises/anagram/README.md +27 -0
  456. data/tracks/sml/exercises/binary/README.md +49 -0
  457. data/tracks/sml/exercises/flatten-array/README.md +32 -0
  458. data/tracks/sml/exercises/hamming/README.md +56 -0
  459. data/tracks/sml/exercises/nth-prime/README.md +29 -0
  460. data/tracks/sml/exercises/raindrops/README.md +38 -0
  461. metadata +433 -4
  462. data/tracks/perl5/exercises/phone-number/cases.json +0 -44
  463. data/tracks/perl5/exercises/phone-number/phone.t +0 -43
@@ -0,0 +1,40 @@
1
+ # Rna Transcription
2
+
3
+ Given a DNA strand, return its RNA complement (per RNA transcription).
4
+
5
+ Both DNA and RNA strands are a sequence of nucleotides.
6
+
7
+ The four nucleotides found in DNA are adenine (**A**), cytosine (**C**),
8
+ guanine (**G**) and thymine (**T**).
9
+
10
+ The four nucleotides found in RNA are adenine (**A**), cytosine (**C**),
11
+ guanine (**G**) and uracil (**U**).
12
+
13
+ Given a DNA strand, its transcribed RNA strand is formed by replacing
14
+ each nucleotide with its complement:
15
+
16
+ * `G` -> `C`
17
+ * `C` -> `G`
18
+ * `T` -> `A`
19
+ * `A` -> `U`
20
+
21
+ ## Resources
22
+
23
+ Remember to check out the Perl 6 [documentation](https://docs.perl6.org/) and
24
+ [resources](https://perl6.org/resources/) pages for information, tips, and
25
+ examples if you get stuck.
26
+
27
+ ## Running the tests
28
+
29
+ There is a test script included with the exercise; a file with the extension
30
+ `.t`. You can run the test script for the exercise by executing the command
31
+ `prove . --exec=perl6` in the exercise directory. You can also add the `-v` flag
32
+ e.g. `prove . --exec=perl6 -v` to display all tests, including any optional
33
+ tests marked as 'TODO'.
34
+
35
+ ## Source
36
+
37
+ Rosalind [http://rosalind.info/problems/rna](http://rosalind.info/problems/rna)
38
+
39
+ ## Submitting Incomplete Solutions
40
+ It's possible to submit an incomplete solution so you can see how others have completed the exercise.
@@ -0,0 +1,37 @@
1
+ # Robot Name
2
+
3
+ Manage robot factory settings.
4
+
5
+ When robots come off the factory floor, they have no name.
6
+
7
+ The first time you boot them up, a random name is generated in the format
8
+ of two uppercase letters followed by three digits, such as RX837 or BC811.
9
+
10
+ Every once in a while we need to reset a robot to its factory settings,
11
+ which means that their name gets wiped. The next time you ask, it will
12
+ respond with a new random name.
13
+
14
+ The names must be random: they should not follow a predictable sequence.
15
+ Random names means a risk of collisions. Your solution must ensure that
16
+ every existing robot has a unique name.
17
+
18
+ ## Resources
19
+
20
+ Remember to check out the Perl 6 [documentation](https://docs.perl6.org/) and
21
+ [resources](https://perl6.org/resources/) pages for information, tips, and
22
+ examples if you get stuck.
23
+
24
+ ## Running the tests
25
+
26
+ There is a test script included with the exercise; a file with the extension
27
+ `.t`. You can run the test script for the exercise by executing the command
28
+ `prove . --exec=perl6` in the exercise directory. You can also add the `-v` flag
29
+ e.g. `prove . --exec=perl6 -v` to display all tests, including any optional
30
+ tests marked as 'TODO'.
31
+
32
+ ## Source
33
+
34
+ A debugging session with Paul Blackwell at gSchool. [http://gschool.it](http://gschool.it)
35
+
36
+ ## Submitting Incomplete Solutions
37
+ It's possible to submit an incomplete solution so you can see how others have completed the exercise.
@@ -0,0 +1,59 @@
1
+ # Scrabble Score
2
+
3
+ Given a word, compute the scrabble score for that word.
4
+
5
+ ## Letter Values
6
+
7
+ You'll need these:
8
+
9
+ ```plain
10
+ Letter Value
11
+ A, E, I, O, U, L, N, R, S, T 1
12
+ D, G 2
13
+ B, C, M, P 3
14
+ F, H, V, W, Y 4
15
+ K 5
16
+ J, X 8
17
+ Q, Z 10
18
+ ```
19
+
20
+ ## Examples
21
+ "cabbage" should be scored as worth 14 points:
22
+
23
+ - 3 points for C
24
+ - 1 point for A, twice
25
+ - 3 points for B, twice
26
+ - 2 points for G
27
+ - 1 point for E
28
+
29
+ And to total:
30
+
31
+ - `3 + 2*1 + 2*3 + 2 + 1`
32
+ - = `3 + 2 + 6 + 3`
33
+ - = `5 + 9`
34
+ - = 14
35
+
36
+ ## Extensions
37
+ - You can play a double or a triple letter.
38
+ - You can play a double or a triple word.
39
+
40
+ ## Resources
41
+
42
+ Remember to check out the Perl 6 [documentation](https://docs.perl6.org/) and
43
+ [resources](https://perl6.org/resources/) pages for information, tips, and
44
+ examples if you get stuck.
45
+
46
+ ## Running the tests
47
+
48
+ There is a test script included with the exercise; a file with the extension
49
+ `.t`. You can run the test script for the exercise by executing the command
50
+ `prove . --exec=perl6` in the exercise directory. You can also add the `-v` flag
51
+ e.g. `prove . --exec=perl6 -v` to display all tests, including any optional
52
+ tests marked as 'TODO'.
53
+
54
+ ## Source
55
+
56
+ Inspired by the Extreme Startup game [https://github.com/rchatley/extreme_startup](https://github.com/rchatley/extreme_startup)
57
+
58
+ ## Submitting Incomplete Solutions
59
+ It's possible to submit an incomplete solution so you can see how others have completed the exercise.
@@ -0,0 +1,39 @@
1
+ # Space Age
2
+
3
+ Given an age in seconds, calculate how old someone would be on:
4
+
5
+ - Earth: orbital period 365.25 Earth days, or 31557600 seconds
6
+ - Mercury: orbital period 0.2408467 Earth years
7
+ - Venus: orbital period 0.61519726 Earth years
8
+ - Mars: orbital period 1.8808158 Earth years
9
+ - Jupiter: orbital period 11.862615 Earth years
10
+ - Saturn: orbital period 29.447498 Earth years
11
+ - Uranus: orbital period 84.016846 Earth years
12
+ - Neptune: orbital period 164.79132 Earth years
13
+
14
+ So if you were told someone were 1,000,000,000 seconds old, you should
15
+ be able to say that they're 31 Earth-years old.
16
+
17
+ If you're wondering why Pluto didn't make the cut, go watch [this
18
+ youtube video](http://www.youtube.com/watch?v=Z_2gbGXzFbs).
19
+
20
+ ## Resources
21
+
22
+ Remember to check out the Perl 6 [documentation](https://docs.perl6.org/) and
23
+ [resources](https://perl6.org/resources/) pages for information, tips, and
24
+ examples if you get stuck.
25
+
26
+ ## Running the tests
27
+
28
+ There is a test script included with the exercise; a file with the extension
29
+ `.t`. You can run the test script for the exercise by executing the command
30
+ `prove . --exec=perl6` in the exercise directory. You can also add the `-v` flag
31
+ e.g. `prove . --exec=perl6 -v` to display all tests, including any optional
32
+ tests marked as 'TODO'.
33
+
34
+ ## Source
35
+
36
+ Partially inspired by Chapter 1 in Chris Pine's online Learn to Program tutorial. [http://pine.fm/LearnToProgram/?Chapter=01](http://pine.fm/LearnToProgram/?Chapter=01)
37
+
38
+ ## Submitting Incomplete Solutions
39
+ It's possible to submit an incomplete solution so you can see how others have completed the exercise.
@@ -0,0 +1,43 @@
1
+ # Trinary
2
+
3
+ Convert a trinary number, represented as a string (e.g. '102012'), to its
4
+ decimal equivalent using first principles.
5
+
6
+ The program should consider strings specifying an invalid trinary as the
7
+ value 0.
8
+
9
+ Trinary numbers contain three symbols: 0, 1, and 2.
10
+
11
+ The last place in a trinary number is the 1's place. The second to last
12
+ is the 3's place, the third to last is the 9's place, etc.
13
+
14
+ ```bash
15
+ # "102012"
16
+ 1 0 2 0 1 2 # the number
17
+ 1*3^5 + 0*3^4 + 2*3^3 + 0*3^2 + 1*3^1 + 2*3^0 # the value
18
+ 243 + 0 + 54 + 0 + 3 + 2 = 302
19
+ ```
20
+
21
+ If your language provides a method in the standard library to perform the
22
+ conversion, pretend it doesn't exist and implement it yourself.
23
+
24
+ ## Resources
25
+
26
+ Remember to check out the Perl 6 [documentation](https://docs.perl6.org/) and
27
+ [resources](https://perl6.org/resources/) pages for information, tips, and
28
+ examples if you get stuck.
29
+
30
+ ## Running the tests
31
+
32
+ There is a test script included with the exercise; a file with the extension
33
+ `.t`. You can run the test script for the exercise by executing the command
34
+ `prove . --exec=perl6` in the exercise directory. You can also add the `-v` flag
35
+ e.g. `prove . --exec=perl6 -v` to display all tests, including any optional
36
+ tests marked as 'TODO'.
37
+
38
+ ## Source
39
+
40
+ All of Computer Science [http://www.wolframalpha.com/input/?i=binary&a=*C.binary-_*MathWorld-](http://www.wolframalpha.com/input/?i=binary&a=*C.binary-_*MathWorld-)
41
+
42
+ ## Submitting Incomplete Solutions
43
+ It's possible to submit an incomplete solution so you can see how others have completed the exercise.
@@ -0,0 +1,34 @@
1
+ # Word Count
2
+
3
+ Given a phrase, count the occurrences of each word in that phrase.
4
+
5
+ For example for the input `"olly olly in come free"`
6
+
7
+ ```plain
8
+ olly: 2
9
+ in: 1
10
+ come: 1
11
+ free: 1
12
+ ```
13
+
14
+
15
+ ## Resources
16
+
17
+ Remember to check out the Perl 6 [documentation](https://docs.perl6.org/) and
18
+ [resources](https://perl6.org/resources/) pages for information, tips, and
19
+ examples if you get stuck.
20
+
21
+ ## Running the tests
22
+
23
+ There is a test script included with the exercise; a file with the extension
24
+ `.t`. You can run the test script for the exercise by executing the command
25
+ `prove . --exec=perl6` in the exercise directory. You can also add the `-v` flag
26
+ e.g. `prove . --exec=perl6 -v` to display all tests, including any optional
27
+ tests marked as 'TODO'.
28
+
29
+ ## Source
30
+
31
+ This is a classic toy problem, but we were reminded of it by seeing it in the Go Tour.
32
+
33
+ ## Submitting Incomplete Solutions
34
+ It's possible to submit an incomplete solution so you can see how others have completed the exercise.
@@ -0,0 +1,78 @@
1
+ # Wordy
2
+
3
+ Parse and evaluate simple math word problems returning the answer as an integer.
4
+
5
+
6
+ ## Iteration 1 — Addition
7
+
8
+ Add two numbers together.
9
+
10
+ > What is 5 plus 13?
11
+
12
+ Evaluates to 18.
13
+
14
+ Handle large numbers and negative numbers.
15
+
16
+
17
+ ## Iteration 2 — Subtraction, Multiplication and Division
18
+
19
+ Now, perform the other three operations.
20
+
21
+ > What is 7 minus 5?
22
+
23
+ 2
24
+
25
+ > What is 6 multiplied by 4?
26
+
27
+ 24
28
+
29
+ > What is 25 divided by 5?
30
+
31
+ 5
32
+
33
+
34
+ ## Iteration 3 — Multiple Operations
35
+
36
+ Handle a set of operations, in sequence.
37
+
38
+ Since these are verbal word problems, evaluate the expression from
39
+ left-to-right, _ignoring the typical order of operations._
40
+
41
+ > What is 5 plus 13 plus 6?
42
+
43
+ 24
44
+
45
+ > What is 3 plus 2 multiplied by 3?
46
+
47
+ 15 (i.e. not 9)
48
+
49
+
50
+ ## Bonus — Exponentials
51
+
52
+ If you'd like, handle exponentials.
53
+
54
+ > What is 2 raised to the 5th power?
55
+
56
+ 32
57
+
58
+
59
+ ## Resources
60
+
61
+ Remember to check out the Perl 6 [documentation](https://docs.perl6.org/) and
62
+ [resources](https://perl6.org/resources/) pages for information, tips, and
63
+ examples if you get stuck.
64
+
65
+ ## Running the tests
66
+
67
+ There is a test script included with the exercise; a file with the extension
68
+ `.t`. You can run the test script for the exercise by executing the command
69
+ `prove . --exec=perl6` in the exercise directory. You can also add the `-v` flag
70
+ e.g. `prove . --exec=perl6 -v` to display all tests, including any optional
71
+ tests marked as 'TODO'.
72
+
73
+ ## Source
74
+
75
+ Inspired by one of the generated questions in the Extreme Startup game. [https://github.com/rchatley/extreme_startup](https://github.com/rchatley/extreme_startup)
76
+
77
+ ## Submitting Incomplete Solutions
78
+ It's possible to submit an incomplete solution so you can see how others have completed the exercise.
@@ -3,15 +3,15 @@
3
3
  "language": "PHP",
4
4
  "repository": "https://github.com/exercism/php",
5
5
  "active": true,
6
- "deprecated": [
7
-
8
- ],
9
6
  "foregone": [
10
7
 
11
8
  ],
12
9
  "exercises": [
13
10
  {
11
+ "uuid": "56116aa6-e3d1-4122-a394-a7e0f6ab6fea",
14
12
  "slug": "hello-world",
13
+ "core": false,
14
+ "unlocked_by": null,
15
15
  "difficulty": 1,
16
16
  "topics": [
17
17
  "Text formatting",
@@ -19,7 +19,10 @@
19
19
  ]
20
20
  },
21
21
  {
22
+ "uuid": "48de430b-0d88-4af0-ab48-d00b840312bb",
22
23
  "slug": "hamming",
24
+ "core": false,
25
+ "unlocked_by": null,
23
26
  "difficulty": 2,
24
27
  "topics": [
25
28
  "Strings",
@@ -27,14 +30,20 @@
27
30
  ]
28
31
  },
29
32
  {
33
+ "uuid": "81aa4bc9-4936-46c2-bb2f-433246a86c5d",
30
34
  "slug": "gigasecond",
35
+ "core": false,
36
+ "unlocked_by": null,
31
37
  "difficulty": 2,
32
38
  "topics": [
33
39
  "Dates"
34
40
  ]
35
41
  },
36
42
  {
43
+ "uuid": "ae91650f-fe06-466a-a40a-6a24f5926fbe",
37
44
  "slug": "bob",
45
+ "core": false,
46
+ "unlocked_by": null,
38
47
  "difficulty": 4,
39
48
  "topics": [
40
49
  "Strings",
@@ -42,14 +51,20 @@
42
51
  ]
43
52
  },
44
53
  {
54
+ "uuid": "4f15fc17-f68e-43bc-9417-403dd6d03f4f",
45
55
  "slug": "pangram",
56
+ "core": false,
57
+ "unlocked_by": null,
46
58
  "difficulty": 4,
47
59
  "topics": [
48
60
  "Strings"
49
61
  ]
50
62
  },
51
63
  {
64
+ "uuid": "81d96250-f2e4-4228-a8e9-254b6b8784ac",
52
65
  "slug": "rna-transcription",
66
+ "core": false,
67
+ "unlocked_by": null,
53
68
  "difficulty": 3,
54
69
  "topics": [
55
70
  "Strings",
@@ -57,7 +72,10 @@
57
72
  ]
58
73
  },
59
74
  {
75
+ "uuid": "0ad53d66-cbdc-4d9a-a083-d24af216d3d9",
60
76
  "slug": "raindrops",
77
+ "core": false,
78
+ "unlocked_by": null,
61
79
  "difficulty": 6,
62
80
  "topics": [
63
81
  "Text formatting",
@@ -65,7 +83,10 @@
65
83
  ]
66
84
  },
67
85
  {
86
+ "uuid": "435f0ec1-f53c-4fe4-b92b-43a582c2fa82",
68
87
  "slug": "isogram",
88
+ "core": false,
89
+ "unlocked_by": null,
69
90
  "difficulty": 4,
70
91
  "topics": [
71
92
  "Strings",
@@ -73,14 +94,20 @@
73
94
  ]
74
95
  },
75
96
  {
97
+ "uuid": "238d86fe-6e29-43b0-9e27-a54caa773618",
76
98
  "slug": "difference-of-squares",
99
+ "core": false,
100
+ "unlocked_by": null,
77
101
  "difficulty": 2,
78
102
  "topics": [
79
103
  "Integers"
80
104
  ]
81
105
  },
82
106
  {
107
+ "uuid": "4fbeb249-dc1d-4282-8455-d1c06a7cb420",
83
108
  "slug": "largest-series-product",
109
+ "core": false,
110
+ "unlocked_by": null,
84
111
  "difficulty": 5,
85
112
  "topics": [
86
113
  "Strings",
@@ -89,7 +116,10 @@
89
116
  ]
90
117
  },
91
118
  {
119
+ "uuid": "210e1252-f92a-44b9-9916-8b27633fee0c",
92
120
  "slug": "roman-numerals",
121
+ "core": false,
122
+ "unlocked_by": null,
93
123
  "difficulty": 4,
94
124
  "topics": [
95
125
  "Control-flow (loops)",
@@ -97,7 +127,10 @@
97
127
  ]
98
128
  },
99
129
  {
130
+ "uuid": "07258892-c06f-4833-97f6-56ead8ca113d",
100
131
  "slug": "sieve",
132
+ "core": false,
133
+ "unlocked_by": null,
101
134
  "difficulty": 1,
102
135
  "topics": [
103
136
  "Filtering",
@@ -105,7 +138,10 @@
105
138
  ]
106
139
  },
107
140
  {
141
+ "uuid": "af8f9ed1-1351-430b-a9dd-bdd2ba4e9a82",
108
142
  "slug": "pig-latin",
143
+ "core": false,
144
+ "unlocked_by": null,
109
145
  "difficulty": 4,
110
146
  "topics": [
111
147
  "Strings",
@@ -113,7 +149,10 @@
113
149
  ]
114
150
  },
115
151
  {
152
+ "uuid": "b24d5f98-8d62-4177-b0ae-306bbf0f918b",
116
153
  "slug": "robot-name",
154
+ "core": false,
155
+ "unlocked_by": null,
117
156
  "difficulty": 3,
118
157
  "topics": [
119
158
  "Randomness",
@@ -122,14 +161,20 @@
122
161
  ]
123
162
  },
124
163
  {
164
+ "uuid": "f2330729-2ddc-4a9b-b364-51f1197f69ff",
125
165
  "slug": "leap",
166
+ "core": false,
167
+ "unlocked_by": null,
126
168
  "difficulty": 1,
127
169
  "topics": [
128
170
  "Integers"
129
171
  ]
130
172
  },
131
173
  {
174
+ "uuid": "6670ef4d-c838-4a9d-8de6-42f31555eec7",
132
175
  "slug": "word-count",
176
+ "core": false,
177
+ "unlocked_by": null,
133
178
  "difficulty": 1,
134
179
  "topics": [
135
180
  "Strings",
@@ -138,7 +183,10 @@
138
183
  ]
139
184
  },
140
185
  {
186
+ "uuid": "d8485927-3aef-4e5a-a8b1-9b81c6c5aa26",
141
187
  "slug": "anagram",
188
+ "core": false,
189
+ "unlocked_by": null,
142
190
  "difficulty": 1,
143
191
  "topics": [
144
192
  "Strings",
@@ -146,14 +194,20 @@
146
194
  ]
147
195
  },
148
196
  {
197
+ "uuid": "ec96bb00-b61e-4881-af0d-445d07afeb6e",
149
198
  "slug": "trinary",
199
+ "core": false,
200
+ "unlocked_by": null,
150
201
  "difficulty": 1,
151
202
  "topics": [
152
203
 
153
204
  ]
154
205
  },
155
206
  {
207
+ "uuid": "54df08ec-4a04-40f3-b974-e59de425ec80",
156
208
  "slug": "bowling",
209
+ "core": false,
210
+ "unlocked_by": null,
157
211
  "difficulty": 1,
158
212
  "topics": [
159
213
  "Algorithms",
@@ -161,7 +215,10 @@
161
215
  ]
162
216
  },
163
217
  {
218
+ "uuid": "682d4bab-ca03-4402-971b-ab2a09e55444",
164
219
  "slug": "clock",
220
+ "core": false,
221
+ "unlocked_by": null,
165
222
  "difficulty": 1,
166
223
  "topics": [
167
224
  "Time",
@@ -169,7 +226,10 @@
169
226
  ]
170
227
  },
171
228
  {
229
+ "uuid": "85408bdd-3c22-4b5a-9c61-044ddfb0c3ac",
172
230
  "slug": "wordy",
231
+ "core": false,
232
+ "unlocked_by": null,
173
233
  "difficulty": 1,
174
234
  "topics": [
175
235
  "Parsing",
@@ -178,14 +238,20 @@
178
238
  ]
179
239
  },
180
240
  {
241
+ "uuid": "774595ef-84e8-44f8-baaa-88bccf38d4d2",
181
242
  "slug": "connect",
243
+ "core": false,
244
+ "unlocked_by": null,
182
245
  "difficulty": 1,
183
246
  "topics": [
184
247
 
185
248
  ]
186
249
  },
187
250
  {
251
+ "uuid": "96e47e5b-ab4f-472d-b56f-9ddcb3994320",
188
252
  "slug": "minesweeper",
253
+ "core": false,
254
+ "unlocked_by": null,
189
255
  "difficulty": 1,
190
256
  "topics": [
191
257
  "Parsing",
@@ -193,7 +259,10 @@
193
259
  ]
194
260
  },
195
261
  {
262
+ "uuid": "4f707562-2e46-475e-8e0b-1058416a7256",
196
263
  "slug": "change",
264
+ "core": false,
265
+ "unlocked_by": null,
197
266
  "difficulty": 1,
198
267
  "topics": [
199
268
  "Integers",
@@ -201,7 +270,10 @@
201
270
  ]
202
271
  },
203
272
  {
273
+ "uuid": "d761002c-1a60-4be8-9593-a17981c3b06d",
204
274
  "slug": "phone-number",
275
+ "core": false,
276
+ "unlocked_by": null,
205
277
  "difficulty": 1,
206
278
  "topics": [
207
279
  "Parsing",
@@ -209,7 +281,10 @@
209
281
  ]
210
282
  },
211
283
  {
284
+ "uuid": "edaafcf7-74cd-4d21-8b07-f357596bca37",
212
285
  "slug": "beer-song",
286
+ "core": false,
287
+ "unlocked_by": null,
213
288
  "difficulty": 1,
214
289
  "topics": [
215
290
  "Text formatting",
@@ -217,7 +292,10 @@
217
292
  ]
218
293
  },
219
294
  {
295
+ "uuid": "79acfce3-fdce-45b4-9d87-bf5caf4825ab",
220
296
  "slug": "atbash-cipher",
297
+ "core": false,
298
+ "unlocked_by": null,
221
299
  "difficulty": 1,
222
300
  "topics": [
223
301
  "Strings",
@@ -226,7 +304,10 @@
226
304
  ]
227
305
  },
228
306
  {
307
+ "uuid": "15ea518d-6c35-442a-9150-86da2d865703",
229
308
  "slug": "bracket-push",
309
+ "core": false,
310
+ "unlocked_by": null,
230
311
  "difficulty": 1,
231
312
  "topics": [
232
313
  "Parsing",
@@ -234,14 +315,20 @@
234
315
  ]
235
316
  },
236
317
  {
318
+ "uuid": "8a355fd3-b627-49fe-a0b6-58818b9bd8ea",
237
319
  "slug": "binary",
320
+ "core": false,
321
+ "unlocked_by": null,
238
322
  "difficulty": 1,
239
323
  "topics": [
240
324
 
241
325
  ]
242
326
  },
243
327
  {
328
+ "uuid": "87edd481-d099-46b8-9137-22bf8f817e42",
244
329
  "slug": "accumulate",
330
+ "core": false,
331
+ "unlocked_by": null,
245
332
  "difficulty": 1,
246
333
  "topics": [
247
334
  "Extension methods",
@@ -250,7 +337,10 @@
250
337
  ]
251
338
  },
252
339
  {
340
+ "uuid": "63e62154-1e3d-4a54-9489-1197741fcf1c",
253
341
  "slug": "variable-length-quantity",
342
+ "core": false,
343
+ "unlocked_by": null,
254
344
  "difficulty": 1,
255
345
  "topics": [
256
346
  "Bitwise operations",
@@ -258,7 +348,10 @@
258
348
  ]
259
349
  },
260
350
  {
351
+ "uuid": "d2fe4844-1dfa-4959-840b-1f1818203d2f",
261
352
  "slug": "acronym",
353
+ "core": false,
354
+ "unlocked_by": null,
262
355
  "difficulty": 1,
263
356
  "topics": [
264
357
  "Strings",
@@ -266,7 +359,10 @@
266
359
  ]
267
360
  },
268
361
  {
362
+ "uuid": "5b1c032e-4f8c-4161-a601-4a67550b710d",
269
363
  "slug": "nucleotide-count",
364
+ "core": false,
365
+ "unlocked_by": null,
270
366
  "difficulty": 1,
271
367
  "topics": [
272
368
  "Dictionaries",
@@ -274,7 +370,10 @@
274
370
  ]
275
371
  },
276
372
  {
373
+ "uuid": "75763125-adb8-4ab3-9630-4e5a85c6ae35",
277
374
  "slug": "triangle",
375
+ "core": false,
376
+ "unlocked_by": null,
278
377
  "difficulty": 1,
279
378
  "topics": [
280
379
  "Integers",
@@ -282,7 +381,10 @@
282
381
  ]
283
382
  },
284
383
  {
384
+ "uuid": "58463b64-9c22-4813-893d-38d11fc8d9a5",
285
385
  "slug": "etl",
386
+ "core": false,
387
+ "unlocked_by": null,
286
388
  "difficulty": 1,
287
389
  "topics": [
288
390
  "Dictionaries",
@@ -291,14 +393,20 @@
291
393
  ]
292
394
  },
293
395
  {
396
+ "uuid": "334ba0ec-2c7b-4c92-ac43-e4777aa46d9c",
294
397
  "slug": "space-age",
398
+ "core": false,
399
+ "unlocked_by": null,
295
400
  "difficulty": 1,
296
401
  "topics": [
297
402
  "Floating-point numbers"
298
403
  ]
299
404
  },
300
405
  {
406
+ "uuid": "a1f27a8b-fd10-4479-85ae-48221eb30f9b",
301
407
  "slug": "allergies",
408
+ "core": false,
409
+ "unlocked_by": null,
302
410
  "difficulty": 3,
303
411
  "topics": [
304
412
  "Bitwise operations",
@@ -306,14 +414,20 @@
306
414
  ]
307
415
  },
308
416
  {
417
+ "uuid": "5022e334-9746-48ad-9e52-3887da35c06a",
309
418
  "slug": "markdown",
419
+ "core": false,
420
+ "unlocked_by": null,
310
421
  "difficulty": 3,
311
422
  "topics": [
312
423
  "refactoring"
313
424
  ]
314
425
  },
315
426
  {
427
+ "uuid": "3b001897-4052-4dab-84fd-b971a9946e0a",
316
428
  "slug": "grains",
429
+ "core": false,
430
+ "unlocked_by": null,
317
431
  "difficulty": 3,
318
432
  "topics": [
319
433
  "Floating-point numbers",
@@ -321,14 +435,20 @@
321
435
  ]
322
436
  },
323
437
  {
438
+ "uuid": "cc6c3b27-b719-454c-a743-7bc73bd47cf1",
324
439
  "slug": "robot-simulator",
440
+ "core": false,
441
+ "unlocked_by": null,
325
442
  "difficulty": 3,
326
443
  "topics": [
327
444
  "OOP"
328
445
  ]
329
446
  },
330
447
  {
448
+ "uuid": "a7a269a5-e99c-4fcf-b331-9a130e94f9e4",
331
449
  "slug": "ocr-numbers",
450
+ "core": false,
451
+ "unlocked_by": null,
332
452
  "difficulty": 3,
333
453
  "topics": [
334
454
  "Strings",
@@ -337,14 +457,20 @@
337
457
  ]
338
458
  },
339
459
  {
460
+ "uuid": "76313ca4-d2b1-45a0-becb-58b5524e98f8",
340
461
  "slug": "book-store",
462
+ "core": false,
463
+ "unlocked_by": null,
341
464
  "difficulty": 3,
342
465
  "topics": [
343
466
  "Algorithms"
344
467
  ]
345
468
  },
346
469
  {
470
+ "uuid": "94ceeb58-55c0-48b5-8a7c-d274f60b9010",
347
471
  "slug": "queen-attack",
472
+ "core": false,
473
+ "unlocked_by": null,
348
474
  "difficulty": 2,
349
475
  "topics": [
350
476
  "Integers",
@@ -352,7 +478,10 @@
352
478
  ]
353
479
  },
354
480
  {
481
+ "uuid": "3c5f3e65-c594-49c2-84e6-3bd3905d7ea3",
355
482
  "slug": "scrabble-score",
483
+ "core": false,
484
+ "unlocked_by": null,
356
485
  "difficulty": 2,
357
486
  "topics": [
358
487
  "Strings",
@@ -361,56 +490,80 @@
361
490
  ]
362
491
  },
363
492
  {
493
+ "uuid": "2d2974e2-2d5e-41d9-8dc3-951967631b37",
364
494
  "slug": "grade-school",
495
+ "core": false,
496
+ "unlocked_by": null,
365
497
  "difficulty": 6,
366
498
  "topics": [
367
499
  "Arrays"
368
500
  ]
369
501
  },
370
502
  {
503
+ "uuid": "1b034dc9-be9a-4434-bc78-57742f63107e",
371
504
  "slug": "luhn",
505
+ "core": false,
506
+ "unlocked_by": null,
372
507
  "difficulty": 4,
373
508
  "topics": [
374
509
 
375
510
  ]
376
511
  },
377
512
  {
513
+ "uuid": "08639413-1e95-45e5-a8e2-071f3bf590c4",
378
514
  "slug": "perfect-numbers",
515
+ "core": false,
516
+ "unlocked_by": null,
379
517
  "difficulty": 1,
380
518
  "topics": [
381
519
 
382
520
  ]
383
521
  },
384
522
  {
523
+ "uuid": "1b44cb35-28ba-416b-8f45-d168d300f9b4",
385
524
  "slug": "sum-of-multiples",
525
+ "core": false,
526
+ "unlocked_by": null,
386
527
  "difficulty": 2,
387
528
  "topics": [
388
529
 
389
530
  ]
390
531
  },
391
532
  {
533
+ "uuid": "a2c918c0-6caa-4c15-a622-e093f3bacba3",
392
534
  "slug": "pascals-triangle",
535
+ "core": false,
536
+ "unlocked_by": null,
393
537
  "difficulty": 3,
394
538
  "topics": [
395
539
 
396
540
  ]
397
541
  },
398
542
  {
543
+ "uuid": "29a3bb8c-298a-4976-8274-c69ec7a0058a",
399
544
  "slug": "nth-prime",
545
+ "core": false,
546
+ "unlocked_by": null,
400
547
  "difficulty": 3,
401
548
  "topics": [
402
549
 
403
550
  ]
404
551
  },
405
552
  {
553
+ "uuid": "44867ac1-6aad-439a-a861-9acd3b619f19",
406
554
  "slug": "binary-search",
555
+ "core": false,
556
+ "unlocked_by": null,
407
557
  "difficulty": 3,
408
558
  "topics": [
409
559
 
410
560
  ]
411
561
  },
412
562
  {
563
+ "uuid": "96de0479-9438-4c74-b57c-67c7073be262",
413
564
  "slug": "prime-factors",
565
+ "core": false,
566
+ "unlocked_by": null,
414
567
  "difficulty": 3,
415
568
  "topics": [
416
569