trackler 2.2.1.103 → 2.2.1.104

Sign up to get free protection for your applications and to get access to all the features.
Files changed (432) hide show
  1. checksums.yaml +4 -4
  2. data/lib/trackler/version.rb +1 -1
  3. data/problem-specifications/exercises/all-your-base/canonical-data.json +43 -43
  4. data/tracks/bash/.github/PULL_REQUEST_TEMPLATE.md +10 -0
  5. data/tracks/cfml/tasks/exercise_template/.meta/hints.md +1 -0
  6. data/tracks/csharp/config/exercise_readme.go.tmpl +4 -4
  7. data/tracks/csharp/exercises/accumulate/README.md +1 -5
  8. data/tracks/csharp/exercises/acronym/README.md +1 -3
  9. data/tracks/csharp/exercises/all-your-base/README.md +2 -4
  10. data/tracks/csharp/exercises/allergies/README.md +1 -3
  11. data/tracks/csharp/exercises/alphametics/README.md +3 -5
  12. data/tracks/csharp/exercises/anagram/README.md +1 -2
  13. data/tracks/csharp/exercises/armstrong-numbers/README.md +14 -1
  14. data/tracks/csharp/exercises/atbash-cipher/README.md +3 -3
  15. data/tracks/csharp/exercises/bank-account/README.md +1 -3
  16. data/tracks/csharp/exercises/beer-song/README.md +3 -4
  17. data/tracks/csharp/exercises/binary-search-tree/README.md +1 -2
  18. data/tracks/csharp/exercises/binary-search/README.md +1 -2
  19. data/tracks/csharp/exercises/binary/README.md +3 -2
  20. data/tracks/csharp/exercises/bob/README.md +3 -3
  21. data/tracks/csharp/exercises/book-store/README.md +6 -7
  22. data/tracks/csharp/exercises/bowling/README.md +21 -8
  23. data/tracks/csharp/exercises/bracket-push/README.md +1 -2
  24. data/tracks/csharp/exercises/change/README.md +2 -3
  25. data/tracks/csharp/exercises/circular-buffer/README.md +14 -8
  26. data/tracks/csharp/exercises/clock/README.md +1 -2
  27. data/tracks/csharp/exercises/collatz-conjecture/README.md +4 -4
  28. data/tracks/csharp/exercises/complex-numbers/README.md +1 -2
  29. data/tracks/csharp/exercises/connect/README.md +2 -4
  30. data/tracks/csharp/exercises/crypto-square/README.md +11 -10
  31. data/tracks/csharp/exercises/custom-set/README.md +1 -3
  32. data/tracks/csharp/exercises/diamond/README.md +10 -9
  33. data/tracks/csharp/exercises/difference-of-squares/README.md +1 -2
  34. data/tracks/csharp/exercises/diffie-hellman/README.md +1 -2
  35. data/tracks/csharp/exercises/dominoes/README.md +10 -3
  36. data/tracks/csharp/exercises/dot-dsl/README.md +2 -4
  37. data/tracks/csharp/exercises/error-handling/README.md +1 -3
  38. data/tracks/csharp/exercises/etl/README.md +4 -3
  39. data/tracks/csharp/exercises/flatten-array/README.md +2 -4
  40. data/tracks/csharp/exercises/food-chain/README.md +2 -3
  41. data/tracks/csharp/exercises/forth/README.md +1 -3
  42. data/tracks/csharp/exercises/gigasecond/README.md +1 -2
  43. data/tracks/csharp/exercises/go-counting/README.md +2 -4
  44. data/tracks/csharp/exercises/grade-school/README.md +1 -3
  45. data/tracks/csharp/exercises/grains/README.md +1 -3
  46. data/tracks/csharp/exercises/grep/README.md +13 -14
  47. data/tracks/csharp/exercises/hamming/README.md +1 -2
  48. data/tracks/csharp/exercises/hangman/README.md +1 -3
  49. data/tracks/csharp/exercises/hello-world/README.md +1 -2
  50. data/tracks/csharp/exercises/hexadecimal/README.md +1 -2
  51. data/tracks/csharp/exercises/house/README.md +3 -5
  52. data/tracks/csharp/exercises/isbn-verifier/README.md +34 -22
  53. data/tracks/csharp/exercises/isogram/README.md +3 -3
  54. data/tracks/csharp/exercises/kindergarten-garden/README.md +14 -15
  55. data/tracks/csharp/exercises/largest-series-product/README.md +1 -2
  56. data/tracks/csharp/exercises/leap/README.md +2 -3
  57. data/tracks/csharp/exercises/ledger/README.md +1 -3
  58. data/tracks/csharp/exercises/linked-list/README.md +11 -12
  59. data/tracks/csharp/exercises/list-ops/README.md +1 -3
  60. data/tracks/csharp/exercises/luhn/README.md +8 -9
  61. data/tracks/csharp/exercises/markdown/README.md +1 -3
  62. data/tracks/csharp/exercises/matrix/README.md +7 -6
  63. data/tracks/csharp/exercises/meetup/README.md +17 -15
  64. data/tracks/csharp/exercises/minesweeper/README.md +1 -3
  65. data/tracks/csharp/exercises/nth-prime/README.md +1 -2
  66. data/tracks/csharp/exercises/nucleotide-count/README.md +9 -24
  67. data/tracks/csharp/exercises/ocr-numbers/README.md +7 -8
  68. data/tracks/csharp/exercises/octal/README.md +7 -4
  69. data/tracks/csharp/exercises/palindrome-products/README.md +16 -18
  70. data/tracks/csharp/exercises/pangram/README.md +2 -3
  71. data/tracks/csharp/exercises/parallel-letter-frequency/README.md +1 -3
  72. data/tracks/csharp/exercises/pascals-triangle/README.md +3 -4
  73. data/tracks/csharp/exercises/perfect-numbers/README.md +3 -4
  74. data/tracks/csharp/exercises/phone-number/README.md +5 -5
  75. data/tracks/csharp/exercises/pig-latin/README.md +1 -2
  76. data/tracks/csharp/exercises/poker/README.md +1 -2
  77. data/tracks/csharp/exercises/pov/README.md +4 -7
  78. data/tracks/csharp/exercises/prime-factors/README.md +1 -2
  79. data/tracks/csharp/exercises/protein-translation/README.md +6 -8
  80. data/tracks/csharp/exercises/proverb/README.md +15 -11
  81. data/tracks/csharp/exercises/pythagorean-triplet/README.md +4 -5
  82. data/tracks/csharp/exercises/queen-attack/README.md +2 -3
  83. data/tracks/csharp/exercises/rail-fence-cipher/README.md +13 -9
  84. data/tracks/csharp/exercises/raindrops/README.md +1 -2
  85. data/tracks/csharp/exercises/react/README.md +1 -3
  86. data/tracks/csharp/exercises/rectangles/README.md +17 -19
  87. data/tracks/csharp/exercises/reverse-string/README.md +16 -1
  88. data/tracks/csharp/exercises/rna-transcription/README.md +3 -4
  89. data/tracks/csharp/exercises/robot-name/README.md +1 -2
  90. data/tracks/csharp/exercises/robot-simulator/README.md +1 -2
  91. data/tracks/csharp/exercises/roman-numerals/README.md +2 -3
  92. data/tracks/csharp/exercises/rotational-cipher/README.md +3 -3
  93. data/tracks/csharp/exercises/run-length-encoding/README.md +5 -6
  94. data/tracks/csharp/exercises/saddle-points/README.md +3 -4
  95. data/tracks/csharp/exercises/say/README.md +1 -2
  96. data/tracks/csharp/exercises/scale-generator/README.md +1 -4
  97. data/tracks/csharp/exercises/scrabble-score/README.md +4 -3
  98. data/tracks/csharp/exercises/secret-handshake/README.md +2 -3
  99. data/tracks/csharp/exercises/series/README.md +1 -2
  100. data/tracks/csharp/exercises/sgf-parsing/README.md +5 -7
  101. data/tracks/csharp/exercises/sieve/README.md +1 -2
  102. data/tracks/csharp/exercises/simple-cipher/README.md +6 -9
  103. data/tracks/csharp/exercises/simple-linked-list/README.md +1 -2
  104. data/tracks/csharp/exercises/space-age/README.md +2 -3
  105. data/tracks/csharp/exercises/spiral-matrix/README.md +7 -8
  106. data/tracks/csharp/exercises/strain/README.md +1 -2
  107. data/tracks/csharp/exercises/sublist/README.md +1 -3
  108. data/tracks/csharp/exercises/sum-of-multiples/README.md +4 -8
  109. data/tracks/csharp/exercises/tournament/README.md +6 -8
  110. data/tracks/csharp/exercises/transpose/README.md +8 -9
  111. data/tracks/csharp/exercises/tree-building/README.md +4 -6
  112. data/tracks/csharp/exercises/triangle/README.md +10 -8
  113. data/tracks/csharp/exercises/trinary/README.md +2 -3
  114. data/tracks/csharp/exercises/twelve-days/README.md +2 -3
  115. data/tracks/csharp/exercises/two-bucket/README.md +11 -12
  116. data/tracks/csharp/exercises/two-fer/README.md +8 -9
  117. data/tracks/csharp/exercises/variable-length-quantity/README.md +7 -9
  118. data/tracks/csharp/exercises/word-count/README.md +2 -4
  119. data/tracks/csharp/exercises/word-search/README.md +2 -4
  120. data/tracks/csharp/exercises/wordy/README.md +1 -7
  121. data/tracks/csharp/exercises/zebra-puzzle/README.md +1 -2
  122. data/tracks/csharp/exercises/zipper/README.md +2 -4
  123. data/tracks/dart/config.json +2 -2
  124. data/tracks/go/config/exercise_readme.go.tmpl +17 -4
  125. data/tracks/go/exercises/acronym/README.md +0 -1
  126. data/tracks/go/exercises/all-your-base/README.md +0 -1
  127. data/tracks/go/exercises/allergies/README.md +0 -1
  128. data/tracks/go/exercises/alphametics/README.md +0 -1
  129. data/tracks/go/exercises/atbash-cipher/README.md +2 -1
  130. data/tracks/go/exercises/bank-account/README.md +0 -1
  131. data/tracks/go/exercises/beer-song/README.md +2 -2
  132. data/tracks/go/exercises/binary/README.md +2 -0
  133. data/tracks/go/exercises/bowling/README.md +20 -6
  134. data/tracks/go/exercises/change/README.md +1 -1
  135. data/tracks/go/exercises/circular-buffer/README.md +13 -6
  136. data/tracks/go/exercises/collatz-conjecture/README.md +1 -1
  137. data/tracks/go/exercises/connect/README.md +1 -2
  138. data/tracks/go/exercises/counter/README.md +0 -1
  139. data/tracks/go/exercises/crypto-square/README.md +10 -8
  140. data/tracks/go/exercises/custom-set/README.md +0 -1
  141. data/tracks/go/exercises/diamond/README.md +6 -6
  142. data/tracks/go/exercises/dominoes/README.md +0 -1
  143. data/tracks/go/exercises/error-handling/README.md +0 -1
  144. data/tracks/go/exercises/etl/README.md +3 -1
  145. data/tracks/go/exercises/food-chain/README.md +1 -1
  146. data/tracks/go/exercises/forth/README.md +0 -1
  147. data/tracks/go/exercises/grade-school/README.md +0 -1
  148. data/tracks/go/exercises/grains/README.md +0 -1
  149. data/tracks/go/exercises/house/README.md +2 -3
  150. data/tracks/go/exercises/isbn-verifier/README.md +26 -21
  151. data/tracks/go/exercises/isogram/README.md +2 -1
  152. data/tracks/go/exercises/kindergarten-garden/README.md +13 -13
  153. data/tracks/go/exercises/leap/README.md +1 -1
  154. data/tracks/go/exercises/ledger/README.md +0 -1
  155. data/tracks/go/exercises/luhn/README.md +7 -7
  156. data/tracks/go/exercises/matrix/README.md +6 -4
  157. data/tracks/go/exercises/meetup/README.md +16 -13
  158. data/tracks/go/exercises/minesweeper/README.md +0 -1
  159. data/tracks/go/exercises/nucleotide-count/README.md +25 -17
  160. data/tracks/go/exercises/ocr-numbers/README.md +6 -6
  161. data/tracks/go/exercises/octal/README.md +6 -2
  162. data/tracks/go/exercises/palindrome-products/README.md +15 -16
  163. data/tracks/go/exercises/pangram/README.md +1 -1
  164. data/tracks/go/exercises/parallel-letter-frequency/README.md +0 -1
  165. data/tracks/go/exercises/pascals-triangle/README.md +2 -2
  166. data/tracks/go/exercises/pov/README.md +3 -5
  167. data/tracks/go/exercises/protein-translation/README.md +5 -6
  168. data/tracks/go/exercises/pythagorean-triplet/README.md +3 -3
  169. data/tracks/go/exercises/queen-attack/README.md +1 -1
  170. data/tracks/go/exercises/react/README.md +0 -1
  171. data/tracks/go/exercises/reverse-string/README.md +1 -1
  172. data/tracks/go/exercises/rna-transcription/README.md +2 -2
  173. data/tracks/go/exercises/robot-name/README.md +15 -0
  174. data/tracks/go/exercises/roman-numerals/README.md +1 -1
  175. data/tracks/go/exercises/rotational-cipher/README.md +0 -1
  176. data/tracks/go/exercises/run-length-encoding/README.md +21 -4
  177. data/tracks/go/exercises/saddle-points/README.md +2 -2
  178. data/tracks/go/exercises/scrabble-score/README.md +3 -1
  179. data/tracks/go/exercises/secret-handshake/README.md +1 -1
  180. data/tracks/go/exercises/simple-linked-list/README.md +1 -2
  181. data/tracks/go/exercises/space-age/README.md +1 -2
  182. data/tracks/go/exercises/spiral-matrix/README.md +1 -1
  183. data/tracks/go/exercises/sublist/README.md +0 -1
  184. data/tracks/go/exercises/sum-of-multiples/README.md +3 -6
  185. data/tracks/go/exercises/tournament/README.md +5 -6
  186. data/tracks/go/exercises/transpose/README.md +7 -7
  187. data/tracks/go/exercises/tree-building/README.md +3 -4
  188. data/tracks/go/exercises/triangle/README.md +21 -6
  189. data/tracks/go/exercises/trinary/README.md +1 -1
  190. data/tracks/go/exercises/twelve-days/README.md +2 -3
  191. data/tracks/go/exercises/two-fer/README.md +2 -31
  192. data/tracks/go/exercises/variable-length-quantity/README.md +6 -7
  193. data/tracks/go/exercises/word-count/README.md +1 -2
  194. data/tracks/go/exercises/word-search/README.md +1 -2
  195. data/tracks/go/exercises/wordy/README.md +0 -5
  196. data/tracks/groovy/config.json +11 -0
  197. data/tracks/groovy/exercises/rotational-cipher/Example.groovy +38 -0
  198. data/tracks/groovy/exercises/rotational-cipher/README.md +49 -0
  199. data/tracks/groovy/exercises/rotational-cipher/RotationalCipher.groovy +11 -0
  200. data/tracks/groovy/exercises/rotational-cipher/RotationalCipherSpec.groovy +68 -0
  201. data/tracks/haskell/exercises/acronym/package.yaml +1 -1
  202. data/tracks/haskell/exercises/acronym/test/Tests.hs +2 -6
  203. data/tracks/haskell/exercises/anagram/package.yaml +1 -1
  204. data/tracks/haskell/exercises/anagram/test/Tests.hs +0 -20
  205. data/tracks/haskell/exercises/clock/package.yaml +1 -1
  206. data/tracks/haskell/exercises/clock/test/Tests.hs +16 -9
  207. data/tracks/haskell/exercises/complex-numbers/package.yaml +1 -1
  208. data/tracks/haskell/exercises/custom-set/package.yaml +1 -1
  209. data/tracks/haskell/exercises/hamming/package.yaml +1 -1
  210. data/tracks/haskell/exercises/kindergarten-garden/package.yaml +1 -1
  211. data/tracks/haskell/exercises/matrix/package.yaml +1 -1
  212. data/tracks/haskell/exercises/matrix/test/Tests.hs +25 -13
  213. data/tracks/haskell/exercises/ocr-numbers/package.yaml +1 -1
  214. data/tracks/haskell/exercises/prime-factors/package.yaml +1 -1
  215. data/tracks/haskell/exercises/queen-attack/package.yaml +1 -1
  216. data/tracks/haskell/exercises/rail-fence-cipher/package.yaml +1 -1
  217. data/tracks/haskell/exercises/raindrops/package.yaml +1 -1
  218. data/tracks/haskell/exercises/robot-simulator/package.yaml +1 -1
  219. data/tracks/haskell/exercises/roman-numerals/package.yaml +1 -1
  220. data/tracks/haskell/exercises/roman-numerals/test/Tests.hs +4 -0
  221. data/tracks/haskell/exercises/run-length-encoding/package.yaml +1 -1
  222. data/tracks/haskell/exercises/word-count/package.yaml +1 -1
  223. data/tracks/java/config.json +0 -1
  224. data/tracks/java/exercises/forth/README.md +1 -1
  225. data/tracks/objective-c/config/exercise_readme.go.tmpl +22 -4
  226. data/tracks/objective-c/exercises/acronym/README.md +8 -3
  227. data/tracks/objective-c/exercises/all-your-base/README.md +8 -3
  228. data/tracks/objective-c/exercises/allergies/README.md +8 -3
  229. data/tracks/objective-c/exercises/anagram/README.md +8 -2
  230. data/tracks/objective-c/exercises/atbash-cipher/README.md +10 -3
  231. data/tracks/objective-c/exercises/beer-song/README.md +10 -4
  232. data/tracks/objective-c/exercises/binary-search/README.md +8 -2
  233. data/tracks/objective-c/exercises/bob/.meta/description.md +10 -0
  234. data/tracks/objective-c/exercises/bob/README.md +8 -2
  235. data/tracks/objective-c/exercises/bracket-push/README.md +8 -2
  236. data/tracks/objective-c/exercises/clock/README.md +8 -2
  237. data/tracks/objective-c/exercises/collatz-conjecture/README.md +8 -2
  238. data/tracks/objective-c/exercises/crypto-square/README.md +18 -10
  239. data/tracks/objective-c/exercises/difference-of-squares/README.md +8 -2
  240. data/tracks/objective-c/exercises/etl/README.md +11 -3
  241. data/tracks/objective-c/exercises/flatten-array/README.md +9 -4
  242. data/tracks/objective-c/exercises/gigasecond/README.md +8 -2
  243. data/tracks/objective-c/exercises/grade-school/README.md +8 -3
  244. data/tracks/objective-c/exercises/grains/README.md +8 -2
  245. data/tracks/objective-c/exercises/hamming/README.md +8 -2
  246. data/tracks/objective-c/exercises/hello-world/README.md +8 -2
  247. data/tracks/objective-c/exercises/isogram/README.md +10 -3
  248. data/tracks/objective-c/exercises/largest-series-product/README.md +8 -2
  249. data/tracks/objective-c/exercises/leap/README.md +9 -3
  250. data/tracks/objective-c/exercises/luhn/README.md +15 -9
  251. data/tracks/objective-c/exercises/meetup/README.md +24 -15
  252. data/tracks/objective-c/exercises/nth-prime/README.md +8 -2
  253. data/tracks/objective-c/exercises/nucleotide-count/README.md +16 -24
  254. data/tracks/objective-c/exercises/pangram/README.md +9 -3
  255. data/tracks/objective-c/exercises/pascals-triangle/README.md +10 -4
  256. data/tracks/objective-c/exercises/perfect-numbers/README.md +10 -4
  257. data/tracks/objective-c/exercises/phone-number/README.md +12 -5
  258. data/tracks/objective-c/exercises/raindrops/README.md +8 -2
  259. data/tracks/objective-c/exercises/rna-transcription/README.md +10 -4
  260. data/tracks/objective-c/exercises/robot-name/README.md +8 -2
  261. data/tracks/objective-c/exercises/roman-numerals/README.md +9 -3
  262. data/tracks/objective-c/exercises/run-length-encoding/README.md +12 -6
  263. data/tracks/objective-c/exercises/say/README.md +8 -2
  264. data/tracks/objective-c/exercises/scrabble-score/README.md +11 -3
  265. data/tracks/objective-c/exercises/secret-handshake/README.md +10 -4
  266. data/tracks/objective-c/exercises/sieve/README.md +8 -2
  267. data/tracks/objective-c/exercises/space-age/README.md +9 -3
  268. data/tracks/objective-c/exercises/sublist/README.md +7 -2
  269. data/tracks/objective-c/exercises/sum-of-multiples/README.md +11 -8
  270. data/tracks/objective-c/exercises/transpose/README.md +15 -9
  271. data/tracks/objective-c/exercises/triangle/README.md +17 -8
  272. data/tracks/objective-c/exercises/two-fer/README.md +8 -2
  273. data/tracks/objective-c/exercises/word-count/README.md +9 -4
  274. data/tracks/php/.travis.yml +1 -1
  275. data/tracks/php/config/exercise_readme.go.tmpl +20 -4
  276. data/tracks/php/exercises/accumulate/README.md +9 -6
  277. data/tracks/php/exercises/acronym/README.md +9 -4
  278. data/tracks/php/exercises/all-your-base/README.md +35 -11
  279. data/tracks/php/exercises/allergies/README.md +9 -4
  280. data/tracks/php/exercises/anagram/README.md +10 -4
  281. data/tracks/php/exercises/atbash-cipher/README.md +12 -5
  282. data/tracks/php/exercises/beer-song/README.md +12 -6
  283. data/tracks/php/exercises/binary-search/README.md +10 -4
  284. data/tracks/php/exercises/binary/README.md +12 -4
  285. data/tracks/php/exercises/bob/.meta/description.md +10 -0
  286. data/tracks/php/exercises/bob/README.md +10 -4
  287. data/tracks/php/exercises/book-store/README.md +15 -9
  288. data/tracks/php/exercises/bowling/README.md +30 -10
  289. data/tracks/php/exercises/bracket-push/README.md +10 -4
  290. data/tracks/php/exercises/change/README.md +11 -5
  291. data/tracks/php/exercises/clock/README.md +10 -4
  292. data/tracks/php/exercises/collatz-conjecture/README.md +10 -4
  293. data/tracks/php/exercises/connect/README.md +11 -6
  294. data/tracks/php/exercises/crypto-square/README.md +10 -4
  295. data/tracks/php/exercises/difference-of-squares/README.md +10 -4
  296. data/tracks/php/exercises/etl/README.md +13 -5
  297. data/tracks/php/exercises/flatten-array/README.md +10 -4
  298. data/tracks/php/exercises/gigasecond/README.md +10 -4
  299. data/tracks/php/exercises/grade-school/README.md +10 -5
  300. data/tracks/php/exercises/grains/README.md +10 -5
  301. data/tracks/php/exercises/hamming/README.md +10 -4
  302. data/tracks/php/exercises/hello-world/README.md +10 -4
  303. data/tracks/php/exercises/isogram/README.md +12 -5
  304. data/tracks/php/exercises/largest-series-product/README.md +10 -4
  305. data/tracks/php/exercises/leap/README.md +11 -5
  306. data/tracks/php/exercises/luhn/README.md +17 -11
  307. data/tracks/php/exercises/markdown/README.md +10 -5
  308. data/tracks/php/exercises/meetup/README.md +45 -12
  309. data/tracks/php/exercises/meetup/example.php +0 -2
  310. data/tracks/php/exercises/meetup/meetup_test.php +0 -2
  311. data/tracks/php/exercises/minesweeper/README.md +10 -5
  312. data/tracks/php/exercises/nth-prime/README.md +10 -4
  313. data/tracks/php/exercises/nucleotide-count/README.md +15 -23
  314. data/tracks/php/exercises/ocr-numbers/README.md +16 -10
  315. data/tracks/php/exercises/pangram/README.md +11 -5
  316. data/tracks/php/exercises/pascals-triangle/README.md +12 -6
  317. data/tracks/php/exercises/perfect-numbers/README.md +12 -6
  318. data/tracks/php/exercises/phone-number/README.md +14 -7
  319. data/tracks/php/exercises/pig-latin/README.md +10 -4
  320. data/tracks/php/exercises/prime-factors/README.md +10 -4
  321. data/tracks/php/exercises/queen-attack/README.md +11 -5
  322. data/tracks/php/exercises/rail-fence-cipher/README.md +10 -4
  323. data/tracks/php/exercises/raindrops/README.md +10 -4
  324. data/tracks/php/exercises/rna-transcription/README.md +11 -5
  325. data/tracks/php/exercises/robot-name/README.md +10 -4
  326. data/tracks/php/exercises/robot-simulator/README.md +10 -4
  327. data/tracks/php/exercises/roman-numerals/README.md +11 -5
  328. data/tracks/php/exercises/run-length-encoding/README.md +13 -4
  329. data/tracks/php/exercises/scrabble-score/README.md +13 -5
  330. data/tracks/php/exercises/series/README.md +27 -0
  331. data/tracks/php/exercises/series/example.php +0 -2
  332. data/tracks/php/exercises/series/series_test.php +0 -1
  333. data/tracks/php/exercises/sieve/README.md +10 -4
  334. data/tracks/php/exercises/space-age/README.md +11 -5
  335. data/tracks/php/exercises/sum-of-multiples/README.md +12 -9
  336. data/tracks/php/exercises/transpose/README.md +10 -4
  337. data/tracks/php/exercises/triangle/README.md +19 -10
  338. data/tracks/php/exercises/trinary/README.md +11 -5
  339. data/tracks/php/exercises/variable-length-quantity/README.md +16 -11
  340. data/tracks/php/exercises/word-count/README.md +10 -5
  341. data/tracks/php/exercises/wordy/README.md +9 -8
  342. data/tracks/rust/config/exercise_readme.go.tmpl +32 -4
  343. data/tracks/rust/exercises/all-your-base/README.md +0 -1
  344. data/tracks/rust/exercises/alphametics/README.md +0 -1
  345. data/tracks/rust/exercises/custom-set/README.md +0 -1
  346. data/tracks/rust/exercises/dominoes/README.md +0 -1
  347. data/tracks/rust/exercises/forth/README.md +0 -1
  348. data/tracks/rust/exercises/isbn-verifier/README.md +1 -1
  349. data/tracks/rust/exercises/minesweeper/README.md +0 -1
  350. data/tracks/rust/exercises/nucleotide-codons/README.md +0 -1
  351. data/tracks/rust/exercises/parallel-letter-frequency/README.md +0 -1
  352. data/tracks/rust/exercises/protein-translation/README.md +2 -2
  353. data/tracks/rust/exercises/react/README.md +0 -1
  354. data/tracks/rust/exercises/rectangles/README.md +0 -1
  355. data/tracks/rust/exercises/reverse-string/README.md +1 -1
  356. data/tracks/rust/exercises/rna-transcription/.meta/hints.md +9 -0
  357. data/tracks/rust/exercises/rna-transcription/README.md +12 -1
  358. data/tracks/rust/exercises/rna-transcription/example.rs +66 -27
  359. data/tracks/rust/exercises/rna-transcription/tests/rna-transcription.rs +52 -19
  360. data/tracks/rust/exercises/sublist/README.md +0 -1
  361. data/tracks/rust/exercises/tournament/README.md +0 -1
  362. data/tracks/swift/config/exercise_readme.go.tmpl +7 -4
  363. data/tracks/swift/exercises/accumulate/README.md +0 -3
  364. data/tracks/swift/exercises/acronym/README.md +0 -1
  365. data/tracks/swift/exercises/all-your-base/README.md +1 -2
  366. data/tracks/swift/exercises/allergies/README.md +0 -1
  367. data/tracks/swift/exercises/atbash-cipher/README.md +2 -1
  368. data/tracks/swift/exercises/beer-song/README.md +2 -2
  369. data/tracks/swift/exercises/binary/README.md +2 -0
  370. data/tracks/swift/exercises/bob/.meta/description.md +10 -0
  371. data/tracks/swift/exercises/bowling/README.md +20 -6
  372. data/tracks/swift/exercises/circular-buffer/README.md +21 -13
  373. data/tracks/swift/exercises/collatz-conjecture/README.md +1 -1
  374. data/tracks/swift/exercises/crypto-square/README.md +10 -8
  375. data/tracks/swift/exercises/custom-set/README.md +0 -1
  376. data/tracks/swift/exercises/diamond/README.md +3 -0
  377. data/tracks/swift/exercises/dominoes/README.md +3 -4
  378. data/tracks/swift/exercises/etl/README.md +3 -1
  379. data/tracks/swift/exercises/flatten-array/README.md +1 -2
  380. data/tracks/swift/exercises/food-chain/README.md +1 -1
  381. data/tracks/swift/exercises/grade-school/README.md +0 -1
  382. data/tracks/swift/exercises/grains/README.md +0 -1
  383. data/tracks/swift/exercises/house/README.md +2 -3
  384. data/tracks/swift/exercises/isbn-verifier/README.md +32 -16
  385. data/tracks/swift/exercises/isogram/README.md +2 -1
  386. data/tracks/swift/exercises/kindergarten-garden/README.md +13 -13
  387. data/tracks/swift/exercises/leap/README.md +1 -1
  388. data/tracks/swift/exercises/linked-list/README.md +10 -10
  389. data/tracks/swift/exercises/list-ops/README.md +1 -0
  390. data/tracks/swift/exercises/luhn/README.md +7 -7
  391. data/tracks/swift/exercises/matrix/README.md +6 -4
  392. data/tracks/swift/exercises/meetup/README.md +16 -13
  393. data/tracks/swift/exercises/minesweeper/README.md +0 -1
  394. data/tracks/swift/exercises/nucleotide-count/README.md +8 -22
  395. data/tracks/swift/exercises/ocr-numbers/README.md +6 -6
  396. data/tracks/swift/exercises/octal/README.md +6 -2
  397. data/tracks/swift/exercises/palindrome-products/README.md +15 -16
  398. data/tracks/swift/exercises/pangram/README.md +1 -1
  399. data/tracks/swift/exercises/pascals-triangle/README.md +2 -2
  400. data/tracks/swift/exercises/perfect-numbers/README.md +2 -2
  401. data/tracks/swift/exercises/phone-number/README.md +4 -3
  402. data/tracks/swift/exercises/protein-translation/README.md +4 -4
  403. data/tracks/swift/exercises/pythagorean-triplet/README.md +3 -3
  404. data/tracks/swift/exercises/queen-attack/README.md +1 -1
  405. data/tracks/swift/exercises/rna-transcription/README.md +2 -2
  406. data/tracks/swift/exercises/roman-numerals/README.md +1 -1
  407. data/tracks/swift/exercises/run-length-encoding/README.md +4 -4
  408. data/tracks/swift/exercises/saddle-points/README.md +2 -2
  409. data/tracks/swift/exercises/say/README.md +1 -1
  410. data/tracks/swift/exercises/scrabble-score/README.md +3 -1
  411. data/tracks/swift/exercises/secret-handshake/README.md +2 -2
  412. data/tracks/swift/exercises/simple-cipher/README.md +5 -7
  413. data/tracks/swift/exercises/space-age/README.md +1 -1
  414. data/tracks/swift/exercises/sublist/README.md +0 -1
  415. data/tracks/swift/exercises/sum-of-multiples/README.md +3 -6
  416. data/tracks/swift/exercises/tournament/README.md +5 -6
  417. data/tracks/swift/exercises/transpose/README.md +7 -7
  418. data/tracks/swift/exercises/triangle/README.md +9 -6
  419. data/tracks/swift/exercises/trinary/README.md +1 -1
  420. data/tracks/swift/exercises/twelve-days/README.md +1 -1
  421. data/tracks/swift/exercises/two-fer/README.md +2 -29
  422. data/tracks/swift/exercises/word-count/README.md +1 -2
  423. data/tracks/swift/exercises/wordy/README.md +0 -5
  424. metadata +12 -10
  425. data/tracks/cfml/tasks/exercise_template/.meta/HINTS.md +0 -0
  426. data/tracks/csharp/docs/EXERCISE_README_INSERT.md +0 -5
  427. data/tracks/go/docs/EXERCISE_README_INSERT.md +0 -16
  428. data/tracks/java/exercises/forth/.meta/readme.go.tmpl +0 -17
  429. data/tracks/objective-c/docs/EXERCISE_README_INSERT.md +0 -15
  430. data/tracks/php/docs/EXERCISE_README_INSERT.md +0 -13
  431. data/tracks/rust/config/exercise-readme-insert.md +0 -31
  432. data/tracks/swift/docs/EXERCISE_README_INSERT.md +0 -6
@@ -19,9 +19,8 @@ For more information, see [this page]
19
19
 
20
20
  ### Submitting Exercises
21
21
 
22
- Note that, when trying to submit an exercise, make sure the exercise file that you're submitting is in the `exercism/csharp/<exerciseName>` directory.
22
+ Note that, when trying to submit an exercise, make sure the exercise file that you're submitting is in the `exercism/csharp/difference-of-squares` directory.
23
23
 
24
- For example, if you're submitting `bob.cs` for the Bob exercise, the submit command would be something like `exercism submit <path_to_exercism_dir>/csharp/bob/bob.cs`.
25
24
  ## Source
26
25
 
27
26
  Problem 6 at Project Euler [http://projecteuler.net/problem=6](http://projecteuler.net/problem=6)
@@ -44,9 +44,8 @@ This exercise requires you to perform calculations on large numbers. To correctl
44
44
 
45
45
  ### Submitting Exercises
46
46
 
47
- Note that, when trying to submit an exercise, make sure the exercise file that you're submitting is in the `exercism/csharp/<exerciseName>` directory.
47
+ Note that, when trying to submit an exercise, make sure the exercise file that you're submitting is in the `exercism/csharp/diffie-hellman` directory.
48
48
 
49
- For example, if you're submitting `bob.cs` for the Bob exercise, the submit command would be something like `exercism submit <path_to_exercism_dir>/csharp/bob/bob.cs`.
50
49
  ## Source
51
50
 
52
51
  Wikipedia, 1024 bit key from www.cryptopp.com/wiki. [http://en.wikipedia.org/wiki/Diffie%E2%80%93Hellman_key_exchange](http://en.wikipedia.org/wiki/Diffie%E2%80%93Hellman_key_exchange)
@@ -1,15 +1,22 @@
1
1
  # Dominoes
2
2
 
3
- Compute whether there exists a way to order a given set of dominoes in such a way that they form a
3
+ Make a chain of dominoes.
4
+
5
+ Compute a way to order a given set of dominoes in such a way that they form a
4
6
  correct domino chain (the dots on one half of a stone match the dots on the
5
7
  neighbouring half of an adjacent stone) and that dots on the halfs of the stones
6
8
  which don't have a neighbour (the first and last stone) match each other.
7
9
 
8
- For example given the stones `21`, `23` and `13` you should declare that there exists a possible chain (for example, `12`, `23` and `31` is a possible chain).
10
+ For example given the stones `[2|1]`, `[2|3]` and `[1|3]` you should compute something
11
+ like `[1|2] [2|3] [3|1]` or `[3|2] [2|1] [1|3]` or `[1|3] [3|2] [2|1]` etc, where the first and last numbers are the same.
9
12
 
10
- For stones 12, 41 and 23 the resulting chain is not valid: 41 12 23's first and last numbers are not the same. 4 != 3
13
+ For stones `[1|2]`, `[4|1]` and `[2|3]` the resulting chain is not valid: `[4|1] [1|2] [2|3]`'s first and last numbers are not the same. 4 != 3
11
14
 
12
15
  Some test cases may use duplicate stones in a chain solution, assume that multiple Domino sets are being used.
13
16
 
17
+ ### Submitting Exercises
18
+
19
+ Note that, when trying to submit an exercise, make sure the exercise file that you're submitting is in the `exercism/csharp/dominoes` directory.
20
+
14
21
  ## Submitting Incomplete Solutions
15
22
  It's possible to submit an incomplete solution so you can see how others have completed the exercise.
@@ -1,4 +1,4 @@
1
- # Dot Dsl
1
+ # DOT DSL
2
2
 
3
3
  Write a Domain Specific Language similar to the Graphviz dot language.
4
4
 
@@ -29,9 +29,7 @@ This exercise requires you to implement classes with a custom equality check. Fo
29
29
 
30
30
  ### Submitting Exercises
31
31
 
32
- Note that, when trying to submit an exercise, make sure the exercise file that you're submitting is in the `exercism/csharp/<exerciseName>` directory.
33
-
34
- For example, if you're submitting `bob.cs` for the Bob exercise, the submit command would be something like `exercism submit <path_to_exercism_dir>/csharp/bob/bob.cs`.
32
+ Note that, when trying to submit an exercise, make sure the exercise file that you're submitting is in the `exercism/csharp/dot-dsl` directory.
35
33
 
36
34
  ## Submitting Incomplete Solutions
37
35
  It's possible to submit an incomplete solution so you can see how others have completed the exercise.
@@ -11,9 +11,7 @@ for your track to see what's exactly required.
11
11
 
12
12
  ### Submitting Exercises
13
13
 
14
- Note that, when trying to submit an exercise, make sure the exercise file that you're submitting is in the `exercism/csharp/<exerciseName>` directory.
15
-
16
- For example, if you're submitting `bob.cs` for the Bob exercise, the submit command would be something like `exercism submit <path_to_exercism_dir>/csharp/bob/bob.cs`.
14
+ Note that, when trying to submit an exercise, make sure the exercise file that you're submitting is in the `exercism/csharp/error-handling` directory.
17
15
 
18
16
  ## Submitting Incomplete Solutions
19
17
  It's possible to submit an incomplete solution so you can see how others have completed the exercise.
@@ -1,8 +1,9 @@
1
- # Etl
1
+ # ETL
2
2
 
3
3
  We are going to do the `Transform` step of an Extract-Transform-Load.
4
4
 
5
5
  ### ETL
6
+
6
7
  Extract-Transform-Load (ETL) is a fancy way of saying, "We have some crufty, legacy data over in this system, and now we need it in this shiny new system over here, so
7
8
  we're going to migrate this."
8
9
 
@@ -11,6 +12,7 @@ once." That's then typically followed by much forehead slapping and
11
12
  moaning about how stupid we could possibly be.)
12
13
 
13
14
  ### The goal
15
+
14
16
  We're going to extract some scrabble scores from a legacy system.
15
17
 
16
18
  The old system stored a list of letters per score:
@@ -46,9 +48,8 @@ game while being scored at 4 in the Hawaiian-language version.
46
48
 
47
49
  ### Submitting Exercises
48
50
 
49
- Note that, when trying to submit an exercise, make sure the exercise file that you're submitting is in the `exercism/csharp/<exerciseName>` directory.
51
+ Note that, when trying to submit an exercise, make sure the exercise file that you're submitting is in the `exercism/csharp/etl` directory.
50
52
 
51
- For example, if you're submitting `bob.cs` for the Bob exercise, the submit command would be something like `exercism submit <path_to_exercism_dir>/csharp/bob/bob.cs`.
52
53
  ## Source
53
54
 
54
55
  The Jumpstart Lab team [http://jumpstartlab.com](http://jumpstartlab.com)
@@ -3,19 +3,17 @@
3
3
  Take a nested list and return a single flattened list with all values except nil/null.
4
4
 
5
5
  The challenge is to write a function that accepts an arbitrarily-deep nested list-like structure and returns a flattened structure without any nil/null values.
6
-
6
+
7
7
  For Example
8
8
 
9
9
  input: [1,[2,3,null,4],[null],5]
10
10
 
11
11
  output: [1,2,3,4,5]
12
12
 
13
-
14
13
  ### Submitting Exercises
15
14
 
16
- Note that, when trying to submit an exercise, make sure the exercise file that you're submitting is in the `exercism/csharp/<exerciseName>` directory.
15
+ Note that, when trying to submit an exercise, make sure the exercise file that you're submitting is in the `exercism/csharp/flatten-array` directory.
17
16
 
18
- For example, if you're submitting `bob.cs` for the Bob exercise, the submit command would be something like `exercism submit <path_to_exercism_dir>/csharp/bob/bob.cs`.
19
17
  ## Source
20
18
 
21
19
  Interview Question [https://reference.wolfram.com/language/ref/Flatten.html](https://reference.wolfram.com/language/ref/Flatten.html)
@@ -10,7 +10,7 @@ This is a [cumulative song](http://en.wikipedia.org/wiki/Cumulative_song) of unk
10
10
 
11
11
  This is one of many common variants.
12
12
 
13
- ```plain
13
+ ```text
14
14
  I know an old lady who swallowed a fly.
15
15
  I don't know why she swallowed the fly. Perhaps she'll die.
16
16
 
@@ -69,9 +69,8 @@ She's dead, of course!
69
69
 
70
70
  ### Submitting Exercises
71
71
 
72
- Note that, when trying to submit an exercise, make sure the exercise file that you're submitting is in the `exercism/csharp/<exerciseName>` directory.
72
+ Note that, when trying to submit an exercise, make sure the exercise file that you're submitting is in the `exercism/csharp/food-chain` directory.
73
73
 
74
- For example, if you're submitting `bob.cs` for the Bob exercise, the submit command would be something like `exercism submit <path_to_exercism_dir>/csharp/bob/bob.cs`.
75
74
  ## Source
76
75
 
77
76
  Wikipedia [http://en.wikipedia.org/wiki/There_Was_an_Old_Lady_Who_Swallowed_a_Fly](http://en.wikipedia.org/wiki/There_Was_an_Old_Lady_Who_Swallowed_a_Fly)
@@ -31,9 +31,7 @@ Words are case-insensitive.
31
31
 
32
32
  ### Submitting Exercises
33
33
 
34
- Note that, when trying to submit an exercise, make sure the exercise file that you're submitting is in the `exercism/csharp/<exerciseName>` directory.
35
-
36
- For example, if you're submitting `bob.cs` for the Bob exercise, the submit command would be something like `exercism submit <path_to_exercism_dir>/csharp/bob/bob.cs`.
34
+ Note that, when trying to submit an exercise, make sure the exercise file that you're submitting is in the `exercism/csharp/forth` directory.
37
35
 
38
36
  ## Submitting Incomplete Solutions
39
37
  It's possible to submit an incomplete solution so you can see how others have completed the exercise.
@@ -6,9 +6,8 @@ A gigasecond is 10^9 (1,000,000,000) seconds.
6
6
 
7
7
  ### Submitting Exercises
8
8
 
9
- Note that, when trying to submit an exercise, make sure the exercise file that you're submitting is in the `exercism/csharp/<exerciseName>` directory.
9
+ Note that, when trying to submit an exercise, make sure the exercise file that you're submitting is in the `exercism/csharp/gigasecond` directory.
10
10
 
11
- For example, if you're submitting `bob.cs` for the Bob exercise, the submit command would be something like `exercism submit <path_to_exercism_dir>/csharp/bob/bob.cs`.
12
11
  ## Source
13
12
 
14
13
  Chapter 9 in Chris Pine's online Learn to Program tutorial. [http://pine.fm/LearnToProgram/?Chapter=09](http://pine.fm/LearnToProgram/?Chapter=09)
@@ -16,7 +16,7 @@ only horizontal and vertical neighbours count. In the following diagram
16
16
  the stones which matter are marked "O" and the stones that don't are
17
17
  marked "I" (ignored). Empty spaces represent empty intersections.
18
18
 
19
- ```
19
+ ```text
20
20
  +----+
21
21
  |IOOI|
22
22
  |O O|
@@ -35,9 +35,7 @@ Library](http://senseis.xmp.net/).
35
35
 
36
36
  ### Submitting Exercises
37
37
 
38
- Note that, when trying to submit an exercise, make sure the exercise file that you're submitting is in the `exercism/csharp/<exerciseName>` directory.
39
-
40
- For example, if you're submitting `bob.cs` for the Bob exercise, the submit command would be something like `exercism submit <path_to_exercism_dir>/csharp/bob/bob.cs`.
38
+ Note that, when trying to submit an exercise, make sure the exercise file that you're submitting is in the `exercism/csharp/go-counting` directory.
41
39
 
42
40
  ## Submitting Incomplete Solutions
43
41
  It's possible to submit an incomplete solution so you can see how others have completed the exercise.
@@ -21,7 +21,6 @@ In the end, you should be able to:
21
21
  Note that all our students only have one name. (It's a small town, what
22
22
  do you want?)
23
23
 
24
-
25
24
  ## For bonus points
26
25
 
27
26
  Did you get the tests passing and the code clean? If you want to, these
@@ -37,9 +36,8 @@ experiment make the code better? Worse? Did you learn anything from it?
37
36
 
38
37
  ### Submitting Exercises
39
38
 
40
- Note that, when trying to submit an exercise, make sure the exercise file that you're submitting is in the `exercism/csharp/<exerciseName>` directory.
39
+ Note that, when trying to submit an exercise, make sure the exercise file that you're submitting is in the `exercism/csharp/grade-school` directory.
41
40
 
42
- For example, if you're submitting `bob.cs` for the Bob exercise, the submit command would be something like `exercism submit <path_to_exercism_dir>/csharp/bob/bob.cs`.
43
41
  ## Source
44
42
 
45
43
  A pairing session with Phil Battos at gSchool [http://gschool.it](http://gschool.it)
@@ -15,7 +15,6 @@ Write code that shows:
15
15
  - how many grains were on each square, and
16
16
  - the total number of grains
17
17
 
18
-
19
18
  ## For bonus points
20
19
 
21
20
  Did you get the tests passing and the code clean? If you want to, these
@@ -29,9 +28,8 @@ experiment make the code better? Worse? Did you learn anything from it?
29
28
 
30
29
  ### Submitting Exercises
31
30
 
32
- Note that, when trying to submit an exercise, make sure the exercise file that you're submitting is in the `exercism/csharp/<exerciseName>` directory.
31
+ Note that, when trying to submit an exercise, make sure the exercise file that you're submitting is in the `exercism/csharp/grains` directory.
33
32
 
34
- For example, if you're submitting `bob.cs` for the Bob exercise, the submit command would be something like `exercism submit <path_to_exercism_dir>/csharp/bob/bob.cs`.
35
33
  ## Source
36
34
 
37
35
  JavaRanch Cattle Drive, exercise 6 [http://www.javaranch.com/grains.jsp](http://www.javaranch.com/grains.jsp)
@@ -3,14 +3,14 @@
3
3
  Search a file for lines matching a regular expression pattern. Return the line
4
4
  number and contents of each matching line.
5
5
 
6
- The Unix [`grep`](http://pubs.opengroup.org/onlinepubs/9699919799/utilities/grep.html) command can be used to search for lines in one or more files
6
+ The Unix [`grep`](http://pubs.opengroup.org/onlinepubs/9699919799/utilities/grep.html) command can be used to search for lines in one or more files
7
7
  that match a user-provided search query (known as the *pattern*).
8
8
 
9
9
  The `grep` command takes three arguments:
10
10
 
11
- 1. The pattern used to match lines in a file.
11
+ 1. The pattern used to match lines in a file.
12
12
  2. Zero or more flags to customize the matching behavior.
13
- 3. One or more files in which to search for matching lines.
13
+ 3. One or more files in which to search for matching lines.
14
14
 
15
15
  Your task is to implement the `grep` function, which should read the contents
16
16
  of the specified files, find the lines that match the specified pattern
@@ -20,18 +20,18 @@ in the first file being output first.
20
20
 
21
21
  As an example, suppose there is a file named "input.txt" with the following contents:
22
22
 
23
- <pre>
23
+ ```text
24
24
  hello
25
25
  world
26
26
  hello again
27
- </pre>
27
+ ```
28
28
 
29
29
  If we were to call `grep "hello" input.txt`, the returned string should be:
30
30
 
31
- <pre>
31
+ ```text
32
32
  hello
33
33
  hello again
34
- </pre>
34
+ ```
35
35
 
36
36
  ### Flags
37
37
 
@@ -46,18 +46,18 @@ As said earlier, the `grep` command should also support the following flags:
46
46
  If we run `grep -n "hello" input.txt`, the `-n` flag will require the matching
47
47
  lines to be prefixed with its line number:
48
48
 
49
- <pre>
49
+ ```text
50
50
  1:hello
51
51
  3:hello again
52
- </pre>
52
+ ```
53
53
 
54
- And if we run `grep -i "HELLO" input.txt`, we'll do a case-insensitive match,
54
+ And if we run `grep -i "HELLO" input.txt`, we'll do a case-insensitive match,
55
55
  and the output will be:
56
56
 
57
- <pre>
57
+ ```text
58
58
  hello
59
59
  hello again
60
- </pre>
60
+ ```
61
61
 
62
62
  The `grep` command should support multiple flags at once.
63
63
 
@@ -66,9 +66,8 @@ print the names of files that do not contain the string "hello".
66
66
 
67
67
  ### Submitting Exercises
68
68
 
69
- Note that, when trying to submit an exercise, make sure the exercise file that you're submitting is in the `exercism/csharp/<exerciseName>` directory.
69
+ Note that, when trying to submit an exercise, make sure the exercise file that you're submitting is in the `exercism/csharp/grep` directory.
70
70
 
71
- For example, if you're submitting `bob.cs` for the Bob exercise, the submit command would be something like `exercism submit <path_to_exercism_dir>/csharp/bob/bob.cs`.
72
71
  ## Source
73
72
 
74
73
  Conversation with Nate Foster. [http://www.cs.cornell.edu/Courses/cs3110/2014sp/hw/0/ps0.pdf](http://www.cs.cornell.edu/Courses/cs3110/2014sp/hw/0/ps0.pdf)
@@ -37,9 +37,8 @@ of equal length differently.
37
37
 
38
38
  ### Submitting Exercises
39
39
 
40
- Note that, when trying to submit an exercise, make sure the exercise file that you're submitting is in the `exercism/csharp/<exerciseName>` directory.
40
+ Note that, when trying to submit an exercise, make sure the exercise file that you're submitting is in the `exercism/csharp/hamming` directory.
41
41
 
42
- For example, if you're submitting `bob.cs` for the Bob exercise, the submit command would be something like `exercism submit <path_to_exercism_dir>/csharp/bob/bob.cs`.
43
42
  ## Source
44
43
 
45
44
  The Calculating Point Mutations problem at Rosalind [http://rosalind.info/problems/hamm/](http://rosalind.info/problems/hamm/)
@@ -24,9 +24,7 @@ This exercise requires you to work with events. For more information, see [this
24
24
 
25
25
  ### Submitting Exercises
26
26
 
27
- Note that, when trying to submit an exercise, make sure the exercise file that you're submitting is in the `exercism/csharp/<exerciseName>` directory.
28
-
29
- For example, if you're submitting `bob.cs` for the Bob exercise, the submit command would be something like `exercism submit <path_to_exercism_dir>/csharp/bob/bob.cs`.
27
+ Note that, when trying to submit an exercise, make sure the exercise file that you're submitting is in the `exercism/csharp/hangman` directory.
30
28
 
31
29
  ## Submitting Incomplete Solutions
32
30
  It's possible to submit an incomplete solution so you can see how others have completed the exercise.
@@ -16,9 +16,8 @@ If everything goes well, you will be ready to fetch your first real exercise.
16
16
 
17
17
  ### Submitting Exercises
18
18
 
19
- Note that, when trying to submit an exercise, make sure the exercise file that you're submitting is in the `exercism/csharp/<exerciseName>` directory.
19
+ Note that, when trying to submit an exercise, make sure the exercise file that you're submitting is in the `exercism/csharp/hello-world` directory.
20
20
 
21
- For example, if you're submitting `bob.cs` for the Bob exercise, the submit command would be something like `exercism submit <path_to_exercism_dir>/csharp/bob/bob.cs`.
22
21
  ## Source
23
22
 
24
23
  This is an exercise to introduce users to using Exercism [http://en.wikipedia.org/wiki/%22Hello,_world!%22_program](http://en.wikipedia.org/wiki/%22Hello,_world!%22_program)
@@ -9,9 +9,8 @@ The program should handle invalid hexadecimal strings.
9
9
 
10
10
  ### Submitting Exercises
11
11
 
12
- Note that, when trying to submit an exercise, make sure the exercise file that you're submitting is in the `exercism/csharp/<exerciseName>` directory.
12
+ Note that, when trying to submit an exercise, make sure the exercise file that you're submitting is in the `exercism/csharp/hexadecimal` directory.
13
13
 
14
- For example, if you're submitting `bob.cs` for the Bob exercise, the submit command would be something like `exercism submit <path_to_exercism_dir>/csharp/bob/bob.cs`.
15
14
  ## Source
16
15
 
17
16
  All of Computer Science [http://www.wolframalpha.com/examples/NumberBases.html](http://www.wolframalpha.com/examples/NumberBases.html)
@@ -1,6 +1,6 @@
1
1
  # House
2
2
 
3
- Output the nursery rhyme 'This is the House that Jack Built'.
3
+ Recite the nursery rhyme 'This is the House that Jack Built'.
4
4
 
5
5
  > [The] process of placing a phrase of clause within another phrase of
6
6
  > clause is called embedding. It is through the processes of recursion
@@ -11,10 +11,9 @@ Output the nursery rhyme 'This is the House that Jack Built'.
11
11
 
12
12
  - [papyr.com](http://papyr.com/hypertextbooks/grammar/ph_noun.htm)
13
13
 
14
-
15
14
  The nursery rhyme reads as follows:
16
15
 
17
- ```plain
16
+ ```text
18
17
  This is the house that Jack built.
19
18
 
20
19
  This is the malt
@@ -112,9 +111,8 @@ Try to capture the structure of the song in your code, where you build up the so
112
111
 
113
112
  ### Submitting Exercises
114
113
 
115
- Note that, when trying to submit an exercise, make sure the exercise file that you're submitting is in the `exercism/csharp/<exerciseName>` directory.
114
+ Note that, when trying to submit an exercise, make sure the exercise file that you're submitting is in the `exercism/csharp/house` directory.
116
115
 
117
- For example, if you're submitting `bob.cs` for the Bob exercise, the submit command would be something like `exercism submit <path_to_exercism_dir>/csharp/bob/bob.cs`.
118
116
  ## Source
119
117
 
120
118
  British nursery rhyme [http://en.wikipedia.org/wiki/This_Is_The_House_That_Jack_Built](http://en.wikipedia.org/wiki/This_Is_The_House_That_Jack_Built)
@@ -1,40 +1,52 @@
1
- # ISBN Verifier
1
+ # ISBN Verifier
2
2
 
3
- Check if a given ISBN-10 is valid.
3
+ The [ISBN-10 verification process](https://en.wikipedia.org/wiki/International_Standard_Book_Number) is used to validate book identification
4
+ numbers. These normally contain dashes and look like: `3-598-21508-8`
4
5
 
5
- ## Functionality
6
+ ## ISBN
7
+
8
+ The ISBN-10 format is 9 digits (0 to 9) plus one check character (either a digit or an X only). In the case the check character is an X, this represents the value '10'. These may be communicated with or without hyphens, and can be checked for their validity by the following formula:
9
+
10
+ ```
11
+ (x1 * 10 + x2 * 9 + x3 * 8 + x4 * 7 + x5 * 6 + x6 * 5 + x7 * 4 + x8 * 3 + x9 * 2 + x10 * 1) mod 11 == 0
12
+ ```
13
+
14
+ If the result is 0, then it is a valid ISBN-10, otherwise it is invalid.
15
+
16
+ ## Example
17
+
18
+ Let's take the ISBN-10 `3-598-21508-8`. We plug it in to the formula, and get:
19
+ ```
20
+ (3 * 10 + 5 * 9 + 9 * 8 + 8 * 7 + 2 * 6 + 1 * 5 + 5 * 4 + 0 * 3 + 8 * 2 + 8 * 1) mod 11 == 0
21
+ ```
6
22
 
7
- Given an unknown string the program should check if the provided string is a valid ISBN-10.
23
+ Since the result is 0, this proves that our ISBN is valid.
24
+
25
+ ## Task
26
+
27
+ Given a string the program should check if the provided string is a valid ISBN-10.
8
28
  Putting this into place requires some thinking about preprocessing/parsing of the string prior to calculating the check digit for the ISBN.
9
29
 
10
- The program should allow for ISBN-10 without the separating dashes to be verified as well.
30
+ The program should be able to verify ISBN-10 both with and without separating dashes.
11
31
 
12
- ## ISBN
13
32
 
14
- Let's take a random ISBN-10 number, say `3-598-21508-8` for this.
15
- The first digit block indicates the group where the ISBN belongs. Groups can consist of shared languages, geographic regions or countries. The leading '3' signals this ISBN is from a german speaking country.
16
- The following number block is to identify the publisher. Since this is a three digit publisher number there is a 5 digit title number for this book.
17
- The last digit in the ISBN is the check digit which is used to detect read errors.
33
+ ## Caveats
18
34
 
19
- The first 9 digits in the ISBN have to be between 0 and 9.
20
- The check digit can additionally be an 'X' to allow 10 to be a valid check digit as well.
35
+ Converting from strings to numbers can be tricky in certain languages.
36
+ Now, it's even trickier since the check digit of an ISBN-10 may be 'X' (representing '10'). For instance `3-598-21507-X` is a valid ISBN-10.
21
37
 
22
- A valid ISBN-10 is calculated with this formula `(x1 * 10 + x2 * 9 + x3 * 8 + x4 * 7 + x5 * 6 + x6 * 5 + x7 * 4 + x8 * 3 + x9 * 2 + x10 * 1) mod 11 == 0`
23
- So for our example ISBN this means:
24
- (3 * 10 + 5 * 9 + 9 * 8 + 8 * 7 + 2 * 6 + 1 * 5 + 5 * 4 + 0 * 3 + 8 * 2 + 8 * 1) mod 11 = 0
38
+ ## Bonus tasks
25
39
 
26
- Which proves that the ISBN is valid.
40
+ * Generate a valid ISBN-13 from the input ISBN-10 (and maybe verify it again with a derived verifier).
27
41
 
42
+ * Generate valid ISBN, maybe even from a given starting ISBN.
28
43
  ### Submitting Exercises
29
44
 
30
- Note that, when trying to submit an exercise, make sure the exercise file that you're submitting is in the `exercism/csharp/<exerciseName>` directory.
31
-
32
- For example, if you're submitting `bob.cs` for the Bob exercise, the submit command would be something like `exercism submit <path_to_exercism_dir>/csharp/bob/bob.cs`.
45
+ Note that, when trying to submit an exercise, make sure the exercise file that you're submitting is in the `exercism/csharp/isbn-verifier` directory.
33
46
 
34
47
  ## Source
35
48
 
36
- Wikipedia [https://en.wikipedia.org/wiki/International_Standard_Book_Number#ISBN-10_check_digit_calculation](https://en.wikipedia.org/wiki/International_Standard_Book_Number#ISBN-10_check_digit_calculation)
49
+ Converting a string into a number and some basic processing utilizing a relatable real world example. [https://en.wikipedia.org/wiki/International_Standard_Book_Number#ISBN-10_check_digit_calculation](https://en.wikipedia.org/wiki/International_Standard_Book_Number#ISBN-10_check_digit_calculation)
37
50
 
38
51
  ## Submitting Incomplete Solutions
39
-
40
- It's possible to submit an incomplete solution so you can see how others have completed the exercise.
52
+ It's possible to submit an incomplete solution so you can see how others have completed the exercise.