trackler 2.2.0.3 → 2.2.0.4

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