trackler 2.2.1.4 → 2.2.1.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/trackler/version.rb +1 -1
- data/tracks/bash/config.json +10 -0
- data/tracks/bash/exercises/error-handling/error_handling_test.sh +31 -0
- data/tracks/bash/exercises/error-handling/example.sh +9 -0
- data/tracks/ceylon/config/maintainers.json +25 -0
- data/tracks/chapel/README.md +1 -1
- data/tracks/chapel/config/exercise_readme.go.tmpl +16 -0
- data/tracks/chapel/config/maintainers.json +5 -0
- data/tracks/chapel/config.json +0 -5
- data/tracks/coffeescript/config/exercise_readme.go.tmpl +16 -0
- data/tracks/coffeescript/config.json +84 -26
- data/tracks/coffeescript/exercises/accumulate/README.md +43 -0
- data/tracks/coffeescript/exercises/anagram/README.md +21 -0
- data/tracks/coffeescript/exercises/atbash-cipher/README.md +42 -0
- data/tracks/coffeescript/exercises/beer-song/README.md +335 -0
- data/tracks/coffeescript/exercises/binary/README.md +43 -0
- data/tracks/coffeescript/exercises/binary-search-tree/README.md +68 -0
- data/tracks/coffeescript/exercises/bob/README.md +26 -0
- data/tracks/coffeescript/exercises/clock/README.md +21 -0
- data/tracks/coffeescript/exercises/hello-world/README.md +29 -0
- data/tracks/coffeescript/exercises/hexadecimal/README.md +22 -0
- data/tracks/coffeescript/exercises/linked-list/README.md +42 -0
- data/tracks/coffeescript/exercises/luhn/README.md +79 -0
- data/tracks/coffeescript/exercises/nth-prime/README.md +23 -0
- data/tracks/coffeescript/exercises/nucleotide-count/README.md +41 -0
- data/tracks/coffeescript/exercises/palindrome-products/README.md +48 -0
- data/tracks/coffeescript/exercises/pascals-triangle/README.md +29 -0
- data/tracks/coffeescript/exercises/queen-attack/README.md +41 -0
- data/tracks/coffeescript/exercises/triangle/README.md +34 -0
- data/tracks/coffeescript/exercises/trinary/README.md +36 -0
- data/tracks/coffeescript/exercises/word-count/README.md +27 -0
- data/tracks/coffeescript/exercises/wordy/README.md +71 -0
- data/tracks/coldfusion/config/exercise_readme.go.tmpl +16 -0
- data/tracks/coldfusion/config.json +4 -6
- data/tracks/coldfusion/exercises/leap/README.md +33 -0
- data/tracks/coq/README.md +19 -32
- data/tracks/coq/config/exercise_readme.go.tmpl +16 -0
- data/tracks/coq/config.json +9 -5
- data/tracks/coq/exercises/hello-world/README.md +45 -0
- data/tracks/coq/exercises/rna-transcription/README.md +49 -0
- data/tracks/coq/exercises/tautology/README.md +33 -0
- data/tracks/cpp/config/exercise_readme.go.tmpl +16 -0
- data/tracks/cpp/config.json +144 -41
- data/tracks/cpp/exercises/allergies/README.md +69 -0
- data/tracks/cpp/exercises/anagram/README.md +45 -0
- data/tracks/cpp/exercises/atbash-cipher/README.md +66 -0
- data/tracks/cpp/exercises/beer-song/README.md +359 -0
- data/tracks/cpp/exercises/binary/README.md +67 -0
- data/tracks/cpp/exercises/bob/README.md +50 -0
- data/tracks/cpp/exercises/clock/README.md +45 -0
- data/tracks/cpp/exercises/crypto-square/README.md +106 -0
- data/tracks/cpp/exercises/difference-of-squares/README.md +51 -0
- data/tracks/cpp/exercises/etl/README.md +83 -0
- data/tracks/cpp/exercises/food-chain/README.md +102 -0
- data/tracks/cpp/exercises/gigasecond/README.md +43 -0
- data/tracks/cpp/exercises/grade-school/README.md +74 -0
- data/tracks/cpp/exercises/grains/README.md +66 -0
- data/tracks/cpp/exercises/hamming/README.md +74 -0
- data/tracks/cpp/exercises/hello-world/README.md +53 -0
- data/tracks/cpp/exercises/hexadecimal/README.md +46 -0
- data/tracks/cpp/exercises/leap/README.md +65 -0
- data/tracks/cpp/exercises/meetup/README.md +62 -0
- data/tracks/cpp/exercises/nth-prime/README.md +47 -0
- data/tracks/cpp/exercises/nucleotide-count/README.md +65 -0
- data/tracks/cpp/exercises/phone-number/README.md +66 -0
- data/tracks/cpp/exercises/prime-factors/README.md +68 -0
- data/tracks/cpp/exercises/queen-attack/README.md +65 -0
- data/tracks/cpp/exercises/raindrops/README.md +56 -0
- data/tracks/cpp/exercises/rna-transcription/README.md +57 -0
- data/tracks/cpp/exercises/robot-name/README.md +54 -0
- data/tracks/cpp/exercises/roman-numerals/README.md +81 -0
- data/tracks/cpp/exercises/say/README.md +101 -0
- data/tracks/cpp/exercises/scrabble-score/README.md +76 -0
- data/tracks/cpp/exercises/series/README.md +59 -0
- data/tracks/cpp/exercises/sieve/README.md +66 -0
- data/tracks/cpp/exercises/space-age/README.md +56 -0
- data/tracks/cpp/exercises/sum-of-multiples/README.md +50 -0
- data/tracks/cpp/exercises/triangle/README.md +58 -0
- data/tracks/cpp/exercises/trinary/README.md +60 -0
- data/tracks/cpp/exercises/word-count/README.md +51 -0
- data/tracks/crystal/config.json +69 -3
- data/tracks/d/config/exercise_readme.go.tmpl +16 -0
- data/tracks/d/config.json +54 -3
- data/tracks/d/exercises/bob/README.md +49 -0
- data/tracks/d/exercises/circular-buffer/README.md +81 -0
- data/tracks/d/exercises/crypto-square/README.md +105 -0
- data/tracks/d/exercises/difference-of-squares/README.md +50 -0
- data/tracks/d/exercises/etl/README.md +82 -0
- data/tracks/d/exercises/gigasecond/README.md +42 -0
- data/tracks/d/exercises/hamming/README.md +73 -0
- data/tracks/d/exercises/hello-world/README.md +52 -0
- data/tracks/d/exercises/leap/README.md +64 -0
- data/tracks/d/exercises/nucleotide-count/README.md +64 -0
- data/tracks/d/exercises/pangram/README.md +46 -0
- data/tracks/d/exercises/raindrops/README.md +55 -0
- data/tracks/d/exercises/react/README.md +50 -0
- data/tracks/d/exercises/rna-transcription/README.md +56 -0
- data/tracks/d/exercises/robot-name/README.md +53 -0
- data/tracks/d/exercises/roman-numerals/README.md +80 -0
- data/tracks/d/exercises/series/README.md +58 -0
- data/tracks/d/exercises/triangle/README.md +57 -0
- data/tracks/delphi/config/maintainers.json +25 -0
- data/tracks/ecmascript/config/maintainers.json +35 -0
- data/tracks/elisp/config/exercise_readme.go.tmpl +16 -0
- data/tracks/elisp/config.json +79 -22
- data/tracks/elisp/exercises/allergies/README.md +37 -0
- data/tracks/elisp/exercises/anagram/README.md +13 -0
- data/tracks/elisp/exercises/atbash-cipher/README.md +34 -0
- data/tracks/elisp/exercises/binary/README.md +35 -0
- data/tracks/elisp/exercises/bob/README.md +18 -0
- data/tracks/elisp/exercises/difference-of-squares/README.md +19 -0
- data/tracks/elisp/exercises/etl/README.md +51 -0
- data/tracks/elisp/exercises/gigasecond/README.md +11 -0
- data/tracks/elisp/exercises/grains/README.md +34 -0
- data/tracks/elisp/exercises/hamming/README.md +42 -0
- data/tracks/elisp/exercises/hello-world/README.md +21 -0
- data/tracks/elisp/exercises/leap/README.md +33 -0
- data/tracks/elisp/exercises/nucleotide-count/README.md +33 -0
- data/tracks/elisp/exercises/perfect-numbers/README.md +24 -0
- data/tracks/elisp/exercises/phone-number/README.md +34 -0
- data/tracks/elisp/exercises/raindrops/README.md +24 -0
- data/tracks/elisp/exercises/rna-transcription/README.md +25 -0
- data/tracks/elisp/exercises/robot-name/README.md +22 -0
- data/tracks/elisp/exercises/roman-numerals/README.md +49 -0
- data/tracks/elisp/exercises/word-count/README.md +19 -0
- data/tracks/elixir/config/maintainers.json +35 -0
- data/tracks/elm/config/exercise_readme.go.tmpl +16 -0
- data/tracks/elm/config.json +96 -5
- data/tracks/elm/exercises/accumulate/README.md +65 -0
- data/tracks/elm/exercises/allergies/README.md +67 -0
- data/tracks/elm/exercises/anagram/README.md +43 -0
- data/tracks/elm/exercises/atbash-cipher/README.md +64 -0
- data/tracks/elm/exercises/bob/README.md +48 -0
- data/tracks/elm/exercises/difference-of-squares/README.md +49 -0
- data/tracks/elm/exercises/etl/README.md +81 -0
- data/tracks/elm/exercises/gigasecond/README.md +41 -0
- data/tracks/elm/exercises/grade-school/README.md +72 -0
- data/tracks/elm/exercises/grains/README.md +64 -0
- data/tracks/elm/exercises/hamming/README.md +72 -0
- data/tracks/elm/exercises/hello-world/README.md +51 -0
- data/tracks/elm/exercises/largest-series-product/README.md +50 -0
- data/tracks/elm/exercises/leap/README.md +63 -0
- data/tracks/elm/exercises/list-ops/README.md +40 -0
- data/tracks/elm/exercises/nucleotide-count/README.md +63 -0
- data/tracks/elm/exercises/pangram/README.md +45 -0
- data/tracks/elm/exercises/phone-number/README.md +64 -0
- data/tracks/elm/exercises/raindrops/README.md +54 -0
- data/tracks/elm/exercises/rna-transcription/README.md +55 -0
- data/tracks/elm/exercises/robot-simulator/README.md +64 -0
- data/tracks/elm/exercises/roman-numerals/README.md +79 -0
- data/tracks/elm/exercises/run-length-encoding/README.md +60 -0
- data/tracks/elm/exercises/say/README.md +99 -0
- data/tracks/elm/exercises/scrabble-score/README.md +74 -0
- data/tracks/elm/exercises/series/README.md +57 -0
- data/tracks/elm/exercises/space-age/README.md +54 -0
- data/tracks/elm/exercises/strain/README.md +70 -0
- data/tracks/elm/exercises/sublist/README.md +51 -0
- data/tracks/elm/exercises/sum-of-multiples/README.md +48 -0
- data/tracks/elm/exercises/triangle/README.md +56 -0
- data/tracks/elm/exercises/word-count/README.md +49 -0
- data/tracks/fortran/config/exercise_readme.go.tmpl +16 -0
- data/tracks/fortran/config.json +21 -5
- data/tracks/fortran/exercises/bob/README.md +18 -0
- data/tracks/fortran/exercises/difference-of-squares/README.md +19 -0
- data/tracks/fortran/exercises/hamming/README.md +42 -0
- data/tracks/fortran/exercises/hello-world/README.md +21 -0
- data/tracks/fortran/exercises/pangram/README.md +15 -0
- data/tracks/fortran/exercises/raindrops/README.md +24 -0
- data/tracks/fortran/exercises/rna-transcription/README.md +25 -0
- data/tracks/go/config/maintainers.json +85 -0
- data/tracks/go/config.json +2 -2
- data/tracks/groovy/config/exercise_readme.go.tmpl +16 -0
- data/tracks/groovy/exercises/difference-of-squares/README.md +33 -0
- data/tracks/groovy/exercises/gigasecond/README.md +25 -0
- data/tracks/groovy/exercises/grains/README.md +48 -0
- data/tracks/groovy/exercises/hamming/README.md +56 -0
- data/tracks/groovy/exercises/hello-world/README.md +35 -0
- data/tracks/groovy/exercises/leap/README.md +47 -0
- data/tracks/groovy/exercises/nth-prime/README.md +29 -0
- data/tracks/groovy/exercises/phone-number/README.md +48 -0
- data/tracks/groovy/exercises/raindrops/README.md +38 -0
- data/tracks/groovy/exercises/rna-transcription/README.md +39 -0
- data/tracks/groovy/exercises/robot-name/README.md +36 -0
- data/tracks/groovy/exercises/roman-numerals/README.md +63 -0
- data/tracks/groovy/exercises/word-count/README.md +33 -0
- data/tracks/haxe/config/exercise_readme.go.tmpl +16 -0
- data/tracks/haxe/config.json +0 -2
- data/tracks/haxe/exercises/bob/README.md +18 -0
- data/tracks/haxe/exercises/hello-world/README.md +21 -0
- data/tracks/idris/config/exercise_readme.go.tmpl +16 -0
- data/tracks/idris/config.json +9 -3
- data/tracks/idris/exercises/hamming/README.md +42 -0
- data/tracks/idris/exercises/hello-world/README.md +21 -0
- data/tracks/idris/exercises/leap/README.md +33 -0
- data/tracks/java/config/maintainers.json +45 -0
- data/tracks/java/exercises/hello-world/TUTORIAL.md +1 -1
- data/tracks/javascript/config/maintainers.json +85 -0
- data/tracks/julia/config/exercise_readme.go.tmpl +16 -0
- data/tracks/julia/config.json +81 -5
- data/tracks/julia/exercises/anagram/README.md +13 -0
- data/tracks/julia/exercises/atbash-cipher/README.md +34 -0
- data/tracks/julia/exercises/bob/README.md +18 -0
- data/tracks/julia/exercises/complex-numbers/README.md +24 -0
- data/tracks/julia/exercises/custom-set/README.md +16 -0
- data/tracks/julia/exercises/difference-of-squares/README.md +19 -0
- data/tracks/julia/exercises/etl/README.md +51 -0
- data/tracks/julia/exercises/gigasecond/README.md +11 -0
- data/tracks/julia/exercises/hamming/README.md +42 -0
- data/tracks/julia/exercises/hello-world/README.md +21 -0
- data/tracks/julia/exercises/isogram/README.md +19 -0
- data/tracks/julia/exercises/leap/README.md +33 -0
- data/tracks/julia/exercises/luhn/README.md +71 -0
- data/tracks/julia/exercises/nucleotide-count/README.md +33 -0
- data/tracks/julia/exercises/pangram/README.md +15 -0
- data/tracks/julia/exercises/pascals-triangle/README.md +21 -0
- data/tracks/julia/exercises/raindrops/README.md +24 -0
- data/tracks/julia/exercises/rna-transcription/README.md +25 -0
- data/tracks/julia/exercises/robot-name/README.md +41 -0
- data/tracks/julia/exercises/roman-numerals/README.md +49 -0
- data/tracks/julia/exercises/rotational-cipher/README.md +59 -0
- data/tracks/julia/exercises/scrabble-score/README.md +44 -0
- data/tracks/julia/exercises/secret-handshake/README.md +35 -0
- data/tracks/julia/exercises/sieve/README.md +34 -0
- data/tracks/julia/exercises/transpose/README.md +65 -0
- data/tracks/julia/exercises/trinary/README.md +28 -0
- data/tracks/julia/exercises/word-count/README.md +19 -0
- data/tracks/lfe/config/exercise_readme.go.tmpl +16 -0
- data/tracks/lfe/config.json +125 -33
- data/tracks/lfe/exercises/accumulate/README.md +51 -0
- data/tracks/lfe/exercises/allergies/README.md +53 -0
- data/tracks/lfe/exercises/anagram/README.md +29 -0
- data/tracks/lfe/exercises/atbash-cipher/README.md +50 -0
- data/tracks/lfe/exercises/bank-account/README.md +46 -0
- data/tracks/lfe/exercises/beer-song/README.md +343 -0
- data/tracks/lfe/exercises/binary/README.md +51 -0
- data/tracks/lfe/exercises/bob/README.md +34 -0
- data/tracks/lfe/exercises/circular-buffer/README.md +66 -0
- data/tracks/lfe/exercises/clock/README.md +29 -0
- data/tracks/lfe/exercises/difference-of-squares/README.md +35 -0
- data/tracks/lfe/exercises/etl/README.md +67 -0
- data/tracks/lfe/exercises/gigasecond/README.md +27 -0
- data/tracks/lfe/exercises/grade-school/README.md +58 -0
- data/tracks/lfe/exercises/grains/README.md +50 -0
- data/tracks/lfe/exercises/hamming/README.md +58 -0
- data/tracks/lfe/exercises/largest-series-product/README.md +36 -0
- data/tracks/lfe/exercises/leap/README.md +49 -0
- data/tracks/lfe/exercises/luhn/README.md +87 -0
- data/tracks/lfe/exercises/meetup/README.md +46 -0
- data/tracks/lfe/exercises/nucleotide-count/README.md +49 -0
- data/tracks/lfe/exercises/parallel-letter-frequency/README.md +27 -0
- data/tracks/lfe/exercises/phone-number/README.md +50 -0
- data/tracks/lfe/exercises/rna-transcription/README.md +41 -0
- data/tracks/lfe/exercises/robot-simulator/README.md +50 -0
- data/tracks/lfe/exercises/series/README.md +43 -0
- data/tracks/lfe/exercises/space-age/README.md +40 -0
- data/tracks/lfe/exercises/strain/README.md +56 -0
- data/tracks/lfe/exercises/sum-of-multiples/README.md +34 -0
- data/tracks/lfe/exercises/trinary/README.md +44 -0
- data/tracks/lfe/exercises/word-count/README.md +35 -0
- data/tracks/lua/config/maintainers.json +35 -0
- data/tracks/lua/config.json +225 -3
- data/tracks/nasm/config/exercise_readme.go.tmpl +16 -0
- data/tracks/nasm/config.json +0 -5
- data/tracks/nim/config/exercise_readme.go.tmpl +16 -0
- data/tracks/nim/config.json +56 -19
- data/tracks/nim/exercises/anagram/README.md +13 -0
- data/tracks/nim/exercises/binary/README.md +35 -0
- data/tracks/nim/exercises/bob/README.md +18 -0
- data/tracks/nim/exercises/difference-of-squares/README.md +19 -0
- data/tracks/nim/exercises/hamming/README.md +42 -0
- data/tracks/nim/exercises/hello-world/README.md +21 -0
- data/tracks/nim/exercises/leap/README.md +33 -0
- data/tracks/nim/exercises/nucleotide-count/README.md +33 -0
- data/tracks/nim/exercises/queen-attack/README.md +33 -0
- data/tracks/nim/exercises/raindrops/README.md +24 -0
- data/tracks/nim/exercises/react/README.md +19 -0
- data/tracks/nim/exercises/rna-transcription/README.md +25 -0
- data/tracks/nim/exercises/triangle/README.md +26 -0
- data/tracks/nim/exercises/word-count/README.md +19 -0
- data/tracks/objective-c/config/exercise_readme.go.tmpl +16 -0
- data/tracks/objective-c/config/maintainers.json +35 -0
- data/tracks/objective-c/config.json +168 -47
- data/tracks/objective-c/exercises/acronym/README.md +32 -0
- data/tracks/objective-c/exercises/all-your-base/README.md +52 -0
- data/tracks/objective-c/exercises/allergies/README.md +54 -0
- data/tracks/objective-c/exercises/anagram/README.md +30 -0
- data/tracks/objective-c/exercises/atbash-cipher/README.md +51 -0
- data/tracks/objective-c/exercises/beer-song/README.md +344 -0
- data/tracks/objective-c/exercises/binary-search/README.md +58 -0
- data/tracks/objective-c/exercises/bob/README.md +35 -0
- data/tracks/objective-c/exercises/bracket-push/README.md +27 -0
- data/tracks/objective-c/exercises/clock/README.md +30 -0
- data/tracks/objective-c/exercises/crypto-square/README.md +91 -0
- data/tracks/objective-c/exercises/difference-of-squares/README.md +36 -0
- data/tracks/objective-c/exercises/etl/README.md +68 -0
- data/tracks/objective-c/exercises/flatten-array/README.md +35 -0
- data/tracks/objective-c/exercises/gigasecond/README.md +28 -0
- data/tracks/objective-c/exercises/grade-school/README.md +59 -0
- data/tracks/objective-c/exercises/hamming/README.md +59 -0
- data/tracks/objective-c/exercises/hello-world/README.md +38 -0
- data/tracks/objective-c/exercises/isogram/README.md +36 -0
- data/tracks/objective-c/exercises/largest-series-product/README.md +37 -0
- data/tracks/objective-c/exercises/leap/README.md +50 -0
- data/tracks/objective-c/exercises/luhn/README.md +88 -0
- data/tracks/objective-c/exercises/meetup/README.md +47 -0
- data/tracks/objective-c/exercises/nucleotide-count/README.md +50 -0
- data/tracks/objective-c/exercises/pangram/README.md +32 -0
- data/tracks/objective-c/exercises/pascals-triangle/README.md +38 -0
- data/tracks/objective-c/exercises/perfect-numbers/README.md +41 -0
- data/tracks/objective-c/exercises/phone-number/README.md +51 -0
- data/tracks/objective-c/exercises/raindrops/README.md +41 -0
- data/tracks/objective-c/exercises/rna-transcription/README.md +42 -0
- data/tracks/objective-c/exercises/robot-name/README.md +39 -0
- data/tracks/objective-c/exercises/roman-numerals/README.md +66 -0
- data/tracks/objective-c/exercises/run-length-encoding/README.md +47 -0
- data/tracks/objective-c/exercises/scrabble-score/README.md +61 -0
- data/tracks/objective-c/exercises/secret-handshake/README.md +52 -0
- data/tracks/objective-c/exercises/sieve/README.md +51 -0
- data/tracks/objective-c/exercises/space-age/README.md +41 -0
- data/tracks/objective-c/exercises/sublist/README.md +38 -0
- data/tracks/objective-c/exercises/sum-of-multiples/README.md +35 -0
- data/tracks/objective-c/exercises/transpose/README.md +82 -0
- data/tracks/objective-c/exercises/triangle/README.md +43 -0
- data/tracks/objective-c/exercises/word-count/README.md +36 -0
- data/tracks/plsql/config/exercise_readme.go.tmpl +16 -0
- data/tracks/plsql/config.json +0 -2
- data/tracks/plsql/exercises/binary/README.md +55 -0
- data/tracks/plsql/exercises/difference-of-squares/README.md +39 -0
- data/tracks/plsql/exercises/gigasecond/README.md +31 -0
- data/tracks/plsql/exercises/grains/README.md +54 -0
- data/tracks/plsql/exercises/hamming/README.md +62 -0
- data/tracks/plsql/exercises/leap/README.md +53 -0
- data/tracks/plsql/exercises/nth-prime/README.md +35 -0
- data/tracks/plsql/exercises/raindrops/README.md +44 -0
- data/tracks/plsql/exercises/rna-transcription/README.md +45 -0
- data/tracks/plsql/exercises/roman-numerals/README.md +69 -0
- data/tracks/powershell/config.json +8 -5
- data/tracks/prolog/config/exercise_readme.go.tmpl +16 -0
- data/tracks/prolog/config.json +33 -5
- data/tracks/prolog/exercises/anagram/README.md +13 -0
- data/tracks/prolog/exercises/binary/README.md +35 -0
- data/tracks/prolog/exercises/grains/README.md +34 -0
- data/tracks/prolog/exercises/hamming/README.md +42 -0
- data/tracks/prolog/exercises/hello-world/README.md +21 -0
- data/tracks/prolog/exercises/leap/README.md +33 -0
- data/tracks/prolog/exercises/nucleotide-count/README.md +33 -0
- data/tracks/prolog/exercises/rna-transcription/README.md +25 -0
- data/tracks/prolog/exercises/space-age/README.md +24 -0
- data/tracks/prolog/exercises/sum-of-multiples/README.md +18 -0
- data/tracks/prolog/exercises/triangle/README.md +26 -0
- data/tracks/python/requirements-travis.txt +1 -1
- data/tracks/r/config/maintainers.json +35 -0
- data/tracks/r/config.json +1 -1
- data/tracks/racket/README.md +1 -1
- data/tracks/racket/config/exercise_readme.go.tmpl +16 -0
- data/tracks/racket/config.json +93 -25
- data/tracks/racket/exercises/accumulate/README.md +60 -0
- data/tracks/racket/exercises/acronym/README.md +40 -0
- data/tracks/racket/exercises/allergies/README.md +62 -0
- data/tracks/racket/exercises/anagram/README.md +38 -0
- data/tracks/racket/exercises/bob/README.md +43 -0
- data/tracks/racket/exercises/difference-of-squares/README.md +44 -0
- data/tracks/racket/exercises/etl/README.md +76 -0
- data/tracks/racket/exercises/gigasecond/README.md +36 -0
- data/tracks/racket/exercises/grains/README.md +59 -0
- data/tracks/racket/exercises/grep/README.md +96 -0
- data/tracks/racket/exercises/hamming/README.md +67 -0
- data/tracks/racket/exercises/hello-world/README.md +46 -0
- data/tracks/racket/exercises/leap/README.md +58 -0
- data/tracks/racket/exercises/list-ops/README.md +35 -0
- data/tracks/racket/exercises/nucleotide-count/README.md +58 -0
- data/tracks/racket/exercises/perfect-numbers/README.md +49 -0
- data/tracks/racket/exercises/phone-number/README.md +59 -0
- data/tracks/racket/exercises/raindrops/README.md +49 -0
- data/tracks/racket/exercises/rna-transcription/README.md +50 -0
- data/tracks/racket/exercises/roman-numerals/README.md +74 -0
- data/tracks/racket/exercises/say/README.md +94 -0
- data/tracks/racket/exercises/scrabble-score/README.md +69 -0
- data/tracks/racket/exercises/word-count/README.md +44 -0
- data/tracks/ruby/exercises/binary-search-tree/.meta/solutions/binary_search_tree.rb +4 -2
- data/tracks/ruby/exercises/binary-search-tree/binary_search_tree_test.rb +13 -4
- data/tracks/scala/config/maintainers.json +29 -0
- data/tracks/scala/exercises/atbash-cipher/example.scala +4 -1
- data/tracks/scala/exercises/atbash-cipher/src/test/scala/AtbashCipherTest.scala +64 -0
- data/tracks/scala/exercises/roman-numerals/example.scala +2 -2
- data/tracks/scala/exercises/roman-numerals/src/test/scala/RomanNumeralsTest.scala +40 -39
- data/tracks/scala/testgen/src/main/scala/AtbashCipherTestGenerator.scala +16 -0
- data/tracks/scala/testgen/src/main/scala/RomanNumeralsTestGenerator.scala +15 -0
- data/tracks/scheme/config/exercise_readme.go.tmpl +16 -0
- data/tracks/scheme/config.json +42 -3
- data/tracks/scheme/exercises/anagram/README.md +13 -0
- data/tracks/scheme/exercises/bob/README.md +18 -0
- data/tracks/scheme/exercises/difference-of-squares/README.md +19 -0
- data/tracks/scheme/exercises/grains/README.md +34 -0
- data/tracks/scheme/exercises/hamming/README.md +42 -0
- data/tracks/scheme/exercises/hello-world/README.md +21 -0
- data/tracks/scheme/exercises/leap/README.md +33 -0
- data/tracks/scheme/exercises/list-ops/README.md +10 -0
- data/tracks/scheme/exercises/nucleotide-count/README.md +33 -0
- data/tracks/scheme/exercises/phone-number/README.md +34 -0
- data/tracks/scheme/exercises/raindrops/README.md +24 -0
- data/tracks/scheme/exercises/rna-transcription/README.md +25 -0
- data/tracks/scheme/exercises/robot-name/README.md +22 -0
- data/tracks/scheme/exercises/scrabble-score/README.md +44 -0
- data/tracks/sml/config/maintainers.json +25 -0
- data/tracks/typescript/config/exercise_readme.go.tmpl +16 -0
- data/tracks/typescript/config/maintainers.json +25 -0
- data/tracks/typescript/config.json +0 -2
- data/tracks/typescript/exercises/anagram/README.md +39 -0
- data/tracks/typescript/exercises/beer-song/README.md +353 -0
- data/tracks/typescript/exercises/bob/README.md +44 -0
- data/tracks/typescript/exercises/difference-of-squares/README.md +45 -0
- data/tracks/typescript/exercises/etl/README.md +77 -0
- data/tracks/typescript/exercises/food-chain/README.md +96 -0
- data/tracks/typescript/exercises/gigasecond/README.md +37 -0
- data/tracks/typescript/exercises/grade-school/README.md +68 -0
- data/tracks/typescript/exercises/hamming/README.md +68 -0
- data/tracks/typescript/exercises/hello-world/README.md +47 -0
- data/tracks/typescript/exercises/leap/README.md +59 -0
- data/tracks/typescript/exercises/pangram/README.md +41 -0
- data/tracks/typescript/exercises/phone-number/README.md +60 -0
- data/tracks/typescript/exercises/raindrops/README.md +50 -0
- data/tracks/typescript/exercises/rna-transcription/README.md +51 -0
- data/tracks/typescript/exercises/robot-name/README.md +48 -0
- data/tracks/typescript/exercises/say/README.md +95 -0
- data/tracks/typescript/exercises/scrabble-score/README.md +70 -0
- data/tracks/typescript/exercises/space-age/README.md +50 -0
- data/tracks/typescript/exercises/word-count/README.md +45 -0
- data/tracks/typescript/exercises/wordy/README.md +89 -0
- data/tracks/vbnet/config/exercise_readme.go.tmpl +16 -0
- data/tracks/vbnet/config.json +28 -12
- data/tracks/vbnet/exercises/accumulate/README.md +41 -0
- data/tracks/vbnet/exercises/allergies/README.md +43 -0
- data/tracks/vbnet/exercises/anagram/README.md +19 -0
- data/tracks/vbnet/exercises/atbash-cipher/README.md +40 -0
- data/tracks/vbnet/exercises/binary/README.md +41 -0
- data/tracks/vbnet/exercises/bob/README.md +24 -0
- data/tracks/vbnet/exercises/crypto-square/README.md +80 -0
- metadata +401 -4
- data/tracks/scala/exercises/atbash-cipher/src/main/scala/Atbash.scala +0 -3
- data/tracks/scala/exercises/atbash-cipher/src/test/scala/atbash_test.scala +0 -48
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
# Atbash Cipher
|
|
2
|
+
|
|
3
|
+
Create an implementation of the atbash cipher, an ancient encryption system created in the Middle East.
|
|
4
|
+
|
|
5
|
+
The Atbash cipher is a simple substitution cipher that relies on
|
|
6
|
+
transposing all the letters in the alphabet such that the resulting
|
|
7
|
+
alphabet is backwards. The first letter is replaced with the last
|
|
8
|
+
letter, the second with the second-last, and so on.
|
|
9
|
+
|
|
10
|
+
An Atbash cipher for the Latin alphabet would be as follows:
|
|
11
|
+
|
|
12
|
+
```plain
|
|
13
|
+
Plain: abcdefghijklmnopqrstuvwxyz
|
|
14
|
+
Cipher: zyxwvutsrqponmlkjihgfedcba
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
It is a very weak cipher because it only has one possible key, and it is
|
|
18
|
+
a simple monoalphabetic substitution cipher. However, this may not have
|
|
19
|
+
been an issue in the cipher's time.
|
|
20
|
+
|
|
21
|
+
Ciphertext is written out in groups of fixed length, the traditional group size
|
|
22
|
+
being 5 letters, and punctuation is excluded. This is to make it harder to guess
|
|
23
|
+
things based on word boundaries.
|
|
24
|
+
|
|
25
|
+
## Examples
|
|
26
|
+
- Encoding `test` gives `gvhg`
|
|
27
|
+
- Decoding `gvhg` gives `test`
|
|
28
|
+
- Decoding `gsvjf rxpyi ldmul cqfnk hlevi gsvoz abwlt` gives `thequickbrownfoxjumpsoverthelazydog`
|
|
29
|
+
|
|
30
|
+
## Getting Started
|
|
31
|
+
|
|
32
|
+
Make sure you have read [the C++ page](http://exercism.io/languages/cpp) on
|
|
33
|
+
exercism.io. This covers the basic information on setting up the development
|
|
34
|
+
environment expected by the exercises.
|
|
35
|
+
|
|
36
|
+
## Passing the Tests
|
|
37
|
+
|
|
38
|
+
Get the first test compiling, linking and passing by following the [three
|
|
39
|
+
rules of test-driven development](http://butunclebob.com/ArticleS.UncleBob.TheThreeRulesOfTdd).
|
|
40
|
+
Create just enough structure by declaring namespaces, functions, classes,
|
|
41
|
+
etc., to satisfy any compiler errors and get the test to fail. Then write
|
|
42
|
+
just enough code to get the test to pass. Once you've done that,
|
|
43
|
+
uncomment the next test by moving the following line past the next test.
|
|
44
|
+
|
|
45
|
+
```C++
|
|
46
|
+
#if defined(EXERCISM_RUN_ALL_TESTS)
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
This may result in compile errors as new constructs may be invoked that
|
|
50
|
+
you haven't yet declared or defined. Again, fix the compile errors minimally
|
|
51
|
+
to get a failing test, then change the code minimally to pass the test,
|
|
52
|
+
refactor your implementation for readability and expressiveness and then
|
|
53
|
+
go on to the next test.
|
|
54
|
+
|
|
55
|
+
Try to use standard C++11 facilities in preference to writing your own
|
|
56
|
+
low-level algorithms or facilities by hand. [CppReference](http://en.cppreference.com/)
|
|
57
|
+
is a wiki reference to the C++ language and standard library. If you
|
|
58
|
+
are new to C++, but have programmed in C, beware of
|
|
59
|
+
[C traps and pitfalls](http://www.slideshare.net/LegalizeAdulthood/c-traps-and-pitfalls-for-c-programmers).
|
|
60
|
+
|
|
61
|
+
## Source
|
|
62
|
+
|
|
63
|
+
Wikipedia [http://en.wikipedia.org/wiki/Atbash](http://en.wikipedia.org/wiki/Atbash)
|
|
64
|
+
|
|
65
|
+
## Submitting Incomplete Solutions
|
|
66
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
|
@@ -0,0 +1,359 @@
|
|
|
1
|
+
# Beer Song
|
|
2
|
+
|
|
3
|
+
Produce the lyrics to that beloved classic, that field-trip favorite: 99 Bottles of Beer on the Wall.
|
|
4
|
+
|
|
5
|
+
Note that not all verses are identical.
|
|
6
|
+
|
|
7
|
+
```plain
|
|
8
|
+
99 bottles of beer on the wall, 99 bottles of beer.
|
|
9
|
+
Take one down and pass it around, 98 bottles of beer on the wall.
|
|
10
|
+
|
|
11
|
+
98 bottles of beer on the wall, 98 bottles of beer.
|
|
12
|
+
Take one down and pass it around, 97 bottles of beer on the wall.
|
|
13
|
+
|
|
14
|
+
97 bottles of beer on the wall, 97 bottles of beer.
|
|
15
|
+
Take one down and pass it around, 96 bottles of beer on the wall.
|
|
16
|
+
|
|
17
|
+
96 bottles of beer on the wall, 96 bottles of beer.
|
|
18
|
+
Take one down and pass it around, 95 bottles of beer on the wall.
|
|
19
|
+
|
|
20
|
+
95 bottles of beer on the wall, 95 bottles of beer.
|
|
21
|
+
Take one down and pass it around, 94 bottles of beer on the wall.
|
|
22
|
+
|
|
23
|
+
94 bottles of beer on the wall, 94 bottles of beer.
|
|
24
|
+
Take one down and pass it around, 93 bottles of beer on the wall.
|
|
25
|
+
|
|
26
|
+
93 bottles of beer on the wall, 93 bottles of beer.
|
|
27
|
+
Take one down and pass it around, 92 bottles of beer on the wall.
|
|
28
|
+
|
|
29
|
+
92 bottles of beer on the wall, 92 bottles of beer.
|
|
30
|
+
Take one down and pass it around, 91 bottles of beer on the wall.
|
|
31
|
+
|
|
32
|
+
91 bottles of beer on the wall, 91 bottles of beer.
|
|
33
|
+
Take one down and pass it around, 90 bottles of beer on the wall.
|
|
34
|
+
|
|
35
|
+
90 bottles of beer on the wall, 90 bottles of beer.
|
|
36
|
+
Take one down and pass it around, 89 bottles of beer on the wall.
|
|
37
|
+
|
|
38
|
+
89 bottles of beer on the wall, 89 bottles of beer.
|
|
39
|
+
Take one down and pass it around, 88 bottles of beer on the wall.
|
|
40
|
+
|
|
41
|
+
88 bottles of beer on the wall, 88 bottles of beer.
|
|
42
|
+
Take one down and pass it around, 87 bottles of beer on the wall.
|
|
43
|
+
|
|
44
|
+
87 bottles of beer on the wall, 87 bottles of beer.
|
|
45
|
+
Take one down and pass it around, 86 bottles of beer on the wall.
|
|
46
|
+
|
|
47
|
+
86 bottles of beer on the wall, 86 bottles of beer.
|
|
48
|
+
Take one down and pass it around, 85 bottles of beer on the wall.
|
|
49
|
+
|
|
50
|
+
85 bottles of beer on the wall, 85 bottles of beer.
|
|
51
|
+
Take one down and pass it around, 84 bottles of beer on the wall.
|
|
52
|
+
|
|
53
|
+
84 bottles of beer on the wall, 84 bottles of beer.
|
|
54
|
+
Take one down and pass it around, 83 bottles of beer on the wall.
|
|
55
|
+
|
|
56
|
+
83 bottles of beer on the wall, 83 bottles of beer.
|
|
57
|
+
Take one down and pass it around, 82 bottles of beer on the wall.
|
|
58
|
+
|
|
59
|
+
82 bottles of beer on the wall, 82 bottles of beer.
|
|
60
|
+
Take one down and pass it around, 81 bottles of beer on the wall.
|
|
61
|
+
|
|
62
|
+
81 bottles of beer on the wall, 81 bottles of beer.
|
|
63
|
+
Take one down and pass it around, 80 bottles of beer on the wall.
|
|
64
|
+
|
|
65
|
+
80 bottles of beer on the wall, 80 bottles of beer.
|
|
66
|
+
Take one down and pass it around, 79 bottles of beer on the wall.
|
|
67
|
+
|
|
68
|
+
79 bottles of beer on the wall, 79 bottles of beer.
|
|
69
|
+
Take one down and pass it around, 78 bottles of beer on the wall.
|
|
70
|
+
|
|
71
|
+
78 bottles of beer on the wall, 78 bottles of beer.
|
|
72
|
+
Take one down and pass it around, 77 bottles of beer on the wall.
|
|
73
|
+
|
|
74
|
+
77 bottles of beer on the wall, 77 bottles of beer.
|
|
75
|
+
Take one down and pass it around, 76 bottles of beer on the wall.
|
|
76
|
+
|
|
77
|
+
76 bottles of beer on the wall, 76 bottles of beer.
|
|
78
|
+
Take one down and pass it around, 75 bottles of beer on the wall.
|
|
79
|
+
|
|
80
|
+
75 bottles of beer on the wall, 75 bottles of beer.
|
|
81
|
+
Take one down and pass it around, 74 bottles of beer on the wall.
|
|
82
|
+
|
|
83
|
+
74 bottles of beer on the wall, 74 bottles of beer.
|
|
84
|
+
Take one down and pass it around, 73 bottles of beer on the wall.
|
|
85
|
+
|
|
86
|
+
73 bottles of beer on the wall, 73 bottles of beer.
|
|
87
|
+
Take one down and pass it around, 72 bottles of beer on the wall.
|
|
88
|
+
|
|
89
|
+
72 bottles of beer on the wall, 72 bottles of beer.
|
|
90
|
+
Take one down and pass it around, 71 bottles of beer on the wall.
|
|
91
|
+
|
|
92
|
+
71 bottles of beer on the wall, 71 bottles of beer.
|
|
93
|
+
Take one down and pass it around, 70 bottles of beer on the wall.
|
|
94
|
+
|
|
95
|
+
70 bottles of beer on the wall, 70 bottles of beer.
|
|
96
|
+
Take one down and pass it around, 69 bottles of beer on the wall.
|
|
97
|
+
|
|
98
|
+
69 bottles of beer on the wall, 69 bottles of beer.
|
|
99
|
+
Take one down and pass it around, 68 bottles of beer on the wall.
|
|
100
|
+
|
|
101
|
+
68 bottles of beer on the wall, 68 bottles of beer.
|
|
102
|
+
Take one down and pass it around, 67 bottles of beer on the wall.
|
|
103
|
+
|
|
104
|
+
67 bottles of beer on the wall, 67 bottles of beer.
|
|
105
|
+
Take one down and pass it around, 66 bottles of beer on the wall.
|
|
106
|
+
|
|
107
|
+
66 bottles of beer on the wall, 66 bottles of beer.
|
|
108
|
+
Take one down and pass it around, 65 bottles of beer on the wall.
|
|
109
|
+
|
|
110
|
+
65 bottles of beer on the wall, 65 bottles of beer.
|
|
111
|
+
Take one down and pass it around, 64 bottles of beer on the wall.
|
|
112
|
+
|
|
113
|
+
64 bottles of beer on the wall, 64 bottles of beer.
|
|
114
|
+
Take one down and pass it around, 63 bottles of beer on the wall.
|
|
115
|
+
|
|
116
|
+
63 bottles of beer on the wall, 63 bottles of beer.
|
|
117
|
+
Take one down and pass it around, 62 bottles of beer on the wall.
|
|
118
|
+
|
|
119
|
+
62 bottles of beer on the wall, 62 bottles of beer.
|
|
120
|
+
Take one down and pass it around, 61 bottles of beer on the wall.
|
|
121
|
+
|
|
122
|
+
61 bottles of beer on the wall, 61 bottles of beer.
|
|
123
|
+
Take one down and pass it around, 60 bottles of beer on the wall.
|
|
124
|
+
|
|
125
|
+
60 bottles of beer on the wall, 60 bottles of beer.
|
|
126
|
+
Take one down and pass it around, 59 bottles of beer on the wall.
|
|
127
|
+
|
|
128
|
+
59 bottles of beer on the wall, 59 bottles of beer.
|
|
129
|
+
Take one down and pass it around, 58 bottles of beer on the wall.
|
|
130
|
+
|
|
131
|
+
58 bottles of beer on the wall, 58 bottles of beer.
|
|
132
|
+
Take one down and pass it around, 57 bottles of beer on the wall.
|
|
133
|
+
|
|
134
|
+
57 bottles of beer on the wall, 57 bottles of beer.
|
|
135
|
+
Take one down and pass it around, 56 bottles of beer on the wall.
|
|
136
|
+
|
|
137
|
+
56 bottles of beer on the wall, 56 bottles of beer.
|
|
138
|
+
Take one down and pass it around, 55 bottles of beer on the wall.
|
|
139
|
+
|
|
140
|
+
55 bottles of beer on the wall, 55 bottles of beer.
|
|
141
|
+
Take one down and pass it around, 54 bottles of beer on the wall.
|
|
142
|
+
|
|
143
|
+
54 bottles of beer on the wall, 54 bottles of beer.
|
|
144
|
+
Take one down and pass it around, 53 bottles of beer on the wall.
|
|
145
|
+
|
|
146
|
+
53 bottles of beer on the wall, 53 bottles of beer.
|
|
147
|
+
Take one down and pass it around, 52 bottles of beer on the wall.
|
|
148
|
+
|
|
149
|
+
52 bottles of beer on the wall, 52 bottles of beer.
|
|
150
|
+
Take one down and pass it around, 51 bottles of beer on the wall.
|
|
151
|
+
|
|
152
|
+
51 bottles of beer on the wall, 51 bottles of beer.
|
|
153
|
+
Take one down and pass it around, 50 bottles of beer on the wall.
|
|
154
|
+
|
|
155
|
+
50 bottles of beer on the wall, 50 bottles of beer.
|
|
156
|
+
Take one down and pass it around, 49 bottles of beer on the wall.
|
|
157
|
+
|
|
158
|
+
49 bottles of beer on the wall, 49 bottles of beer.
|
|
159
|
+
Take one down and pass it around, 48 bottles of beer on the wall.
|
|
160
|
+
|
|
161
|
+
48 bottles of beer on the wall, 48 bottles of beer.
|
|
162
|
+
Take one down and pass it around, 47 bottles of beer on the wall.
|
|
163
|
+
|
|
164
|
+
47 bottles of beer on the wall, 47 bottles of beer.
|
|
165
|
+
Take one down and pass it around, 46 bottles of beer on the wall.
|
|
166
|
+
|
|
167
|
+
46 bottles of beer on the wall, 46 bottles of beer.
|
|
168
|
+
Take one down and pass it around, 45 bottles of beer on the wall.
|
|
169
|
+
|
|
170
|
+
45 bottles of beer on the wall, 45 bottles of beer.
|
|
171
|
+
Take one down and pass it around, 44 bottles of beer on the wall.
|
|
172
|
+
|
|
173
|
+
44 bottles of beer on the wall, 44 bottles of beer.
|
|
174
|
+
Take one down and pass it around, 43 bottles of beer on the wall.
|
|
175
|
+
|
|
176
|
+
43 bottles of beer on the wall, 43 bottles of beer.
|
|
177
|
+
Take one down and pass it around, 42 bottles of beer on the wall.
|
|
178
|
+
|
|
179
|
+
42 bottles of beer on the wall, 42 bottles of beer.
|
|
180
|
+
Take one down and pass it around, 41 bottles of beer on the wall.
|
|
181
|
+
|
|
182
|
+
41 bottles of beer on the wall, 41 bottles of beer.
|
|
183
|
+
Take one down and pass it around, 40 bottles of beer on the wall.
|
|
184
|
+
|
|
185
|
+
40 bottles of beer on the wall, 40 bottles of beer.
|
|
186
|
+
Take one down and pass it around, 39 bottles of beer on the wall.
|
|
187
|
+
|
|
188
|
+
39 bottles of beer on the wall, 39 bottles of beer.
|
|
189
|
+
Take one down and pass it around, 38 bottles of beer on the wall.
|
|
190
|
+
|
|
191
|
+
38 bottles of beer on the wall, 38 bottles of beer.
|
|
192
|
+
Take one down and pass it around, 37 bottles of beer on the wall.
|
|
193
|
+
|
|
194
|
+
37 bottles of beer on the wall, 37 bottles of beer.
|
|
195
|
+
Take one down and pass it around, 36 bottles of beer on the wall.
|
|
196
|
+
|
|
197
|
+
36 bottles of beer on the wall, 36 bottles of beer.
|
|
198
|
+
Take one down and pass it around, 35 bottles of beer on the wall.
|
|
199
|
+
|
|
200
|
+
35 bottles of beer on the wall, 35 bottles of beer.
|
|
201
|
+
Take one down and pass it around, 34 bottles of beer on the wall.
|
|
202
|
+
|
|
203
|
+
34 bottles of beer on the wall, 34 bottles of beer.
|
|
204
|
+
Take one down and pass it around, 33 bottles of beer on the wall.
|
|
205
|
+
|
|
206
|
+
33 bottles of beer on the wall, 33 bottles of beer.
|
|
207
|
+
Take one down and pass it around, 32 bottles of beer on the wall.
|
|
208
|
+
|
|
209
|
+
32 bottles of beer on the wall, 32 bottles of beer.
|
|
210
|
+
Take one down and pass it around, 31 bottles of beer on the wall.
|
|
211
|
+
|
|
212
|
+
31 bottles of beer on the wall, 31 bottles of beer.
|
|
213
|
+
Take one down and pass it around, 30 bottles of beer on the wall.
|
|
214
|
+
|
|
215
|
+
30 bottles of beer on the wall, 30 bottles of beer.
|
|
216
|
+
Take one down and pass it around, 29 bottles of beer on the wall.
|
|
217
|
+
|
|
218
|
+
29 bottles of beer on the wall, 29 bottles of beer.
|
|
219
|
+
Take one down and pass it around, 28 bottles of beer on the wall.
|
|
220
|
+
|
|
221
|
+
28 bottles of beer on the wall, 28 bottles of beer.
|
|
222
|
+
Take one down and pass it around, 27 bottles of beer on the wall.
|
|
223
|
+
|
|
224
|
+
27 bottles of beer on the wall, 27 bottles of beer.
|
|
225
|
+
Take one down and pass it around, 26 bottles of beer on the wall.
|
|
226
|
+
|
|
227
|
+
26 bottles of beer on the wall, 26 bottles of beer.
|
|
228
|
+
Take one down and pass it around, 25 bottles of beer on the wall.
|
|
229
|
+
|
|
230
|
+
25 bottles of beer on the wall, 25 bottles of beer.
|
|
231
|
+
Take one down and pass it around, 24 bottles of beer on the wall.
|
|
232
|
+
|
|
233
|
+
24 bottles of beer on the wall, 24 bottles of beer.
|
|
234
|
+
Take one down and pass it around, 23 bottles of beer on the wall.
|
|
235
|
+
|
|
236
|
+
23 bottles of beer on the wall, 23 bottles of beer.
|
|
237
|
+
Take one down and pass it around, 22 bottles of beer on the wall.
|
|
238
|
+
|
|
239
|
+
22 bottles of beer on the wall, 22 bottles of beer.
|
|
240
|
+
Take one down and pass it around, 21 bottles of beer on the wall.
|
|
241
|
+
|
|
242
|
+
21 bottles of beer on the wall, 21 bottles of beer.
|
|
243
|
+
Take one down and pass it around, 20 bottles of beer on the wall.
|
|
244
|
+
|
|
245
|
+
20 bottles of beer on the wall, 20 bottles of beer.
|
|
246
|
+
Take one down and pass it around, 19 bottles of beer on the wall.
|
|
247
|
+
|
|
248
|
+
19 bottles of beer on the wall, 19 bottles of beer.
|
|
249
|
+
Take one down and pass it around, 18 bottles of beer on the wall.
|
|
250
|
+
|
|
251
|
+
18 bottles of beer on the wall, 18 bottles of beer.
|
|
252
|
+
Take one down and pass it around, 17 bottles of beer on the wall.
|
|
253
|
+
|
|
254
|
+
17 bottles of beer on the wall, 17 bottles of beer.
|
|
255
|
+
Take one down and pass it around, 16 bottles of beer on the wall.
|
|
256
|
+
|
|
257
|
+
16 bottles of beer on the wall, 16 bottles of beer.
|
|
258
|
+
Take one down and pass it around, 15 bottles of beer on the wall.
|
|
259
|
+
|
|
260
|
+
15 bottles of beer on the wall, 15 bottles of beer.
|
|
261
|
+
Take one down and pass it around, 14 bottles of beer on the wall.
|
|
262
|
+
|
|
263
|
+
14 bottles of beer on the wall, 14 bottles of beer.
|
|
264
|
+
Take one down and pass it around, 13 bottles of beer on the wall.
|
|
265
|
+
|
|
266
|
+
13 bottles of beer on the wall, 13 bottles of beer.
|
|
267
|
+
Take one down and pass it around, 12 bottles of beer on the wall.
|
|
268
|
+
|
|
269
|
+
12 bottles of beer on the wall, 12 bottles of beer.
|
|
270
|
+
Take one down and pass it around, 11 bottles of beer on the wall.
|
|
271
|
+
|
|
272
|
+
11 bottles of beer on the wall, 11 bottles of beer.
|
|
273
|
+
Take one down and pass it around, 10 bottles of beer on the wall.
|
|
274
|
+
|
|
275
|
+
10 bottles of beer on the wall, 10 bottles of beer.
|
|
276
|
+
Take one down and pass it around, 9 bottles of beer on the wall.
|
|
277
|
+
|
|
278
|
+
9 bottles of beer on the wall, 9 bottles of beer.
|
|
279
|
+
Take one down and pass it around, 8 bottles of beer on the wall.
|
|
280
|
+
|
|
281
|
+
8 bottles of beer on the wall, 8 bottles of beer.
|
|
282
|
+
Take one down and pass it around, 7 bottles of beer on the wall.
|
|
283
|
+
|
|
284
|
+
7 bottles of beer on the wall, 7 bottles of beer.
|
|
285
|
+
Take one down and pass it around, 6 bottles of beer on the wall.
|
|
286
|
+
|
|
287
|
+
6 bottles of beer on the wall, 6 bottles of beer.
|
|
288
|
+
Take one down and pass it around, 5 bottles of beer on the wall.
|
|
289
|
+
|
|
290
|
+
5 bottles of beer on the wall, 5 bottles of beer.
|
|
291
|
+
Take one down and pass it around, 4 bottles of beer on the wall.
|
|
292
|
+
|
|
293
|
+
4 bottles of beer on the wall, 4 bottles of beer.
|
|
294
|
+
Take one down and pass it around, 3 bottles of beer on the wall.
|
|
295
|
+
|
|
296
|
+
3 bottles of beer on the wall, 3 bottles of beer.
|
|
297
|
+
Take one down and pass it around, 2 bottles of beer on the wall.
|
|
298
|
+
|
|
299
|
+
2 bottles of beer on the wall, 2 bottles of beer.
|
|
300
|
+
Take one down and pass it around, 1 bottle of beer on the wall.
|
|
301
|
+
|
|
302
|
+
1 bottle of beer on the wall, 1 bottle of beer.
|
|
303
|
+
Take it down and pass it around, no more bottles of beer on the wall.
|
|
304
|
+
|
|
305
|
+
No more bottles of beer on the wall, no more bottles of beer.
|
|
306
|
+
Go to the store and buy some more, 99 bottles of beer on the wall.
|
|
307
|
+
```
|
|
308
|
+
|
|
309
|
+
## For bonus points
|
|
310
|
+
|
|
311
|
+
Did you get the tests passing and the code clean? If you want to, these
|
|
312
|
+
are some additional things you could try:
|
|
313
|
+
|
|
314
|
+
* Remove as much duplication as you possibly can.
|
|
315
|
+
* Optimize for readability, even if it means introducing duplication.
|
|
316
|
+
* If you've removed all the duplication, do you have a lot of
|
|
317
|
+
conditionals? Try replacing the conditionals with polymorphism, if it
|
|
318
|
+
applies in this language. How readable is it?
|
|
319
|
+
|
|
320
|
+
Then please share your thoughts in a comment on the submission. Did this
|
|
321
|
+
experiment make the code better? Worse? Did you learn anything from it?
|
|
322
|
+
|
|
323
|
+
## Getting Started
|
|
324
|
+
|
|
325
|
+
Make sure you have read [the C++ page](http://exercism.io/languages/cpp) on
|
|
326
|
+
exercism.io. This covers the basic information on setting up the development
|
|
327
|
+
environment expected by the exercises.
|
|
328
|
+
|
|
329
|
+
## Passing the Tests
|
|
330
|
+
|
|
331
|
+
Get the first test compiling, linking and passing by following the [three
|
|
332
|
+
rules of test-driven development](http://butunclebob.com/ArticleS.UncleBob.TheThreeRulesOfTdd).
|
|
333
|
+
Create just enough structure by declaring namespaces, functions, classes,
|
|
334
|
+
etc., to satisfy any compiler errors and get the test to fail. Then write
|
|
335
|
+
just enough code to get the test to pass. Once you've done that,
|
|
336
|
+
uncomment the next test by moving the following line past the next test.
|
|
337
|
+
|
|
338
|
+
```C++
|
|
339
|
+
#if defined(EXERCISM_RUN_ALL_TESTS)
|
|
340
|
+
```
|
|
341
|
+
|
|
342
|
+
This may result in compile errors as new constructs may be invoked that
|
|
343
|
+
you haven't yet declared or defined. Again, fix the compile errors minimally
|
|
344
|
+
to get a failing test, then change the code minimally to pass the test,
|
|
345
|
+
refactor your implementation for readability and expressiveness and then
|
|
346
|
+
go on to the next test.
|
|
347
|
+
|
|
348
|
+
Try to use standard C++11 facilities in preference to writing your own
|
|
349
|
+
low-level algorithms or facilities by hand. [CppReference](http://en.cppreference.com/)
|
|
350
|
+
is a wiki reference to the C++ language and standard library. If you
|
|
351
|
+
are new to C++, but have programmed in C, beware of
|
|
352
|
+
[C traps and pitfalls](http://www.slideshare.net/LegalizeAdulthood/c-traps-and-pitfalls-for-c-programmers).
|
|
353
|
+
|
|
354
|
+
## Source
|
|
355
|
+
|
|
356
|
+
Learn to Program by Chris Pine [http://pine.fm/LearnToProgram/?Chapter=06](http://pine.fm/LearnToProgram/?Chapter=06)
|
|
357
|
+
|
|
358
|
+
## Submitting Incomplete Solutions
|
|
359
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
# Binary
|
|
2
|
+
|
|
3
|
+
Convert a binary number, represented as a string (e.g. '101010'), to its decimal equivalent using first principles.
|
|
4
|
+
|
|
5
|
+
Implement binary to decimal conversion. Given a binary input
|
|
6
|
+
string, your program should produce a decimal output. The
|
|
7
|
+
program should handle invalid inputs.
|
|
8
|
+
|
|
9
|
+
## Note
|
|
10
|
+
- Implement the conversion yourself.
|
|
11
|
+
Do not use something else to perform the conversion for you.
|
|
12
|
+
|
|
13
|
+
## About Binary (Base-2)
|
|
14
|
+
Decimal is a base-10 system.
|
|
15
|
+
|
|
16
|
+
A number 23 in base 10 notation can be understood
|
|
17
|
+
as a linear combination of powers of 10:
|
|
18
|
+
|
|
19
|
+
- The rightmost digit gets multiplied by 10^0 = 1
|
|
20
|
+
- The next number gets multiplied by 10^1 = 10
|
|
21
|
+
- ...
|
|
22
|
+
- The *n*th number gets multiplied by 10^*(n-1)*.
|
|
23
|
+
- All these values are summed.
|
|
24
|
+
|
|
25
|
+
So: `23 => 2*10^1 + 3*10^0 => 2*10 + 3*1 = 23 base 10`
|
|
26
|
+
|
|
27
|
+
Binary is similar, but uses powers of 2 rather than powers of 10.
|
|
28
|
+
|
|
29
|
+
So: `101 => 1*2^2 + 0*2^1 + 1*2^0 => 1*4 + 0*2 + 1*1 => 4 + 1 => 5 base 10`.
|
|
30
|
+
|
|
31
|
+
## Getting Started
|
|
32
|
+
|
|
33
|
+
Make sure you have read [the C++ page](http://exercism.io/languages/cpp) on
|
|
34
|
+
exercism.io. This covers the basic information on setting up the development
|
|
35
|
+
environment expected by the exercises.
|
|
36
|
+
|
|
37
|
+
## Passing the Tests
|
|
38
|
+
|
|
39
|
+
Get the first test compiling, linking and passing by following the [three
|
|
40
|
+
rules of test-driven development](http://butunclebob.com/ArticleS.UncleBob.TheThreeRulesOfTdd).
|
|
41
|
+
Create just enough structure by declaring namespaces, functions, classes,
|
|
42
|
+
etc., to satisfy any compiler errors and get the test to fail. Then write
|
|
43
|
+
just enough code to get the test to pass. Once you've done that,
|
|
44
|
+
uncomment the next test by moving the following line past the next test.
|
|
45
|
+
|
|
46
|
+
```C++
|
|
47
|
+
#if defined(EXERCISM_RUN_ALL_TESTS)
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
This may result in compile errors as new constructs may be invoked that
|
|
51
|
+
you haven't yet declared or defined. Again, fix the compile errors minimally
|
|
52
|
+
to get a failing test, then change the code minimally to pass the test,
|
|
53
|
+
refactor your implementation for readability and expressiveness and then
|
|
54
|
+
go on to the next test.
|
|
55
|
+
|
|
56
|
+
Try to use standard C++11 facilities in preference to writing your own
|
|
57
|
+
low-level algorithms or facilities by hand. [CppReference](http://en.cppreference.com/)
|
|
58
|
+
is a wiki reference to the C++ language and standard library. If you
|
|
59
|
+
are new to C++, but have programmed in C, beware of
|
|
60
|
+
[C traps and pitfalls](http://www.slideshare.net/LegalizeAdulthood/c-traps-and-pitfalls-for-c-programmers).
|
|
61
|
+
|
|
62
|
+
## Source
|
|
63
|
+
|
|
64
|
+
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-)
|
|
65
|
+
|
|
66
|
+
## Submitting Incomplete Solutions
|
|
67
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
# Bob
|
|
2
|
+
|
|
3
|
+
Bob is a lackadaisical teenager. In conversation, his responses are very limited.
|
|
4
|
+
|
|
5
|
+
Bob answers 'Sure.' if you ask him a question.
|
|
6
|
+
|
|
7
|
+
He answers 'Whoa, chill out!' if you yell at him.
|
|
8
|
+
|
|
9
|
+
He says 'Fine. Be that way!' if you address him without actually saying
|
|
10
|
+
anything.
|
|
11
|
+
|
|
12
|
+
He answers 'Whatever.' to anything else.
|
|
13
|
+
|
|
14
|
+
## Getting Started
|
|
15
|
+
|
|
16
|
+
Make sure you have read [the C++ page](http://exercism.io/languages/cpp) on
|
|
17
|
+
exercism.io. This covers the basic information on setting up the development
|
|
18
|
+
environment expected by the exercises.
|
|
19
|
+
|
|
20
|
+
## Passing the Tests
|
|
21
|
+
|
|
22
|
+
Get the first test compiling, linking and passing by following the [three
|
|
23
|
+
rules of test-driven development](http://butunclebob.com/ArticleS.UncleBob.TheThreeRulesOfTdd).
|
|
24
|
+
Create just enough structure by declaring namespaces, functions, classes,
|
|
25
|
+
etc., to satisfy any compiler errors and get the test to fail. Then write
|
|
26
|
+
just enough code to get the test to pass. Once you've done that,
|
|
27
|
+
uncomment the next test by moving the following line past the next test.
|
|
28
|
+
|
|
29
|
+
```C++
|
|
30
|
+
#if defined(EXERCISM_RUN_ALL_TESTS)
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
This may result in compile errors as new constructs may be invoked that
|
|
34
|
+
you haven't yet declared or defined. Again, fix the compile errors minimally
|
|
35
|
+
to get a failing test, then change the code minimally to pass the test,
|
|
36
|
+
refactor your implementation for readability and expressiveness and then
|
|
37
|
+
go on to the next test.
|
|
38
|
+
|
|
39
|
+
Try to use standard C++11 facilities in preference to writing your own
|
|
40
|
+
low-level algorithms or facilities by hand. [CppReference](http://en.cppreference.com/)
|
|
41
|
+
is a wiki reference to the C++ language and standard library. If you
|
|
42
|
+
are new to C++, but have programmed in C, beware of
|
|
43
|
+
[C traps and pitfalls](http://www.slideshare.net/LegalizeAdulthood/c-traps-and-pitfalls-for-c-programmers).
|
|
44
|
+
|
|
45
|
+
## Source
|
|
46
|
+
|
|
47
|
+
Inspired by the 'Deaf Grandma' exercise in Chris Pine's Learn to Program tutorial. [http://pine.fm/LearnToProgram/?Chapter=06](http://pine.fm/LearnToProgram/?Chapter=06)
|
|
48
|
+
|
|
49
|
+
## Submitting Incomplete Solutions
|
|
50
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# Clock
|
|
2
|
+
|
|
3
|
+
Implement a clock that handles times without dates.
|
|
4
|
+
|
|
5
|
+
You should be able to add and subtract minutes to it.
|
|
6
|
+
|
|
7
|
+
Two clocks that represent the same time should be equal to each other.
|
|
8
|
+
|
|
9
|
+
## Getting Started
|
|
10
|
+
|
|
11
|
+
Make sure you have read [the C++ page](http://exercism.io/languages/cpp) on
|
|
12
|
+
exercism.io. This covers the basic information on setting up the development
|
|
13
|
+
environment expected by the exercises.
|
|
14
|
+
|
|
15
|
+
## Passing the Tests
|
|
16
|
+
|
|
17
|
+
Get the first test compiling, linking and passing by following the [three
|
|
18
|
+
rules of test-driven development](http://butunclebob.com/ArticleS.UncleBob.TheThreeRulesOfTdd).
|
|
19
|
+
Create just enough structure by declaring namespaces, functions, classes,
|
|
20
|
+
etc., to satisfy any compiler errors and get the test to fail. Then write
|
|
21
|
+
just enough code to get the test to pass. Once you've done that,
|
|
22
|
+
uncomment the next test by moving the following line past the next test.
|
|
23
|
+
|
|
24
|
+
```C++
|
|
25
|
+
#if defined(EXERCISM_RUN_ALL_TESTS)
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
This may result in compile errors as new constructs may be invoked that
|
|
29
|
+
you haven't yet declared or defined. Again, fix the compile errors minimally
|
|
30
|
+
to get a failing test, then change the code minimally to pass the test,
|
|
31
|
+
refactor your implementation for readability and expressiveness and then
|
|
32
|
+
go on to the next test.
|
|
33
|
+
|
|
34
|
+
Try to use standard C++11 facilities in preference to writing your own
|
|
35
|
+
low-level algorithms or facilities by hand. [CppReference](http://en.cppreference.com/)
|
|
36
|
+
is a wiki reference to the C++ language and standard library. If you
|
|
37
|
+
are new to C++, but have programmed in C, beware of
|
|
38
|
+
[C traps and pitfalls](http://www.slideshare.net/LegalizeAdulthood/c-traps-and-pitfalls-for-c-programmers).
|
|
39
|
+
|
|
40
|
+
## Source
|
|
41
|
+
|
|
42
|
+
Pairing session with Erin Drummond [https://twitter.com/ebdrummond](https://twitter.com/ebdrummond)
|
|
43
|
+
|
|
44
|
+
## Submitting Incomplete Solutions
|
|
45
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
# Crypto Square
|
|
2
|
+
|
|
3
|
+
Implement the classic method for composing secret messages called a square code.
|
|
4
|
+
|
|
5
|
+
Given an English text, output the encoded version of that text.
|
|
6
|
+
|
|
7
|
+
First, the input is normalized: the spaces and punctuation are removed
|
|
8
|
+
from the English text and the message is downcased.
|
|
9
|
+
|
|
10
|
+
Then, the normalized characters are broken into rows. These rows can be
|
|
11
|
+
regarded as forming a rectangle when printed with intervening newlines.
|
|
12
|
+
|
|
13
|
+
For example, the sentence
|
|
14
|
+
|
|
15
|
+
> If man was meant to stay on the ground, god would have given us roots.
|
|
16
|
+
|
|
17
|
+
is normalized to:
|
|
18
|
+
|
|
19
|
+
> ifmanwasmeanttostayonthegroundgodwouldhavegivenusroots
|
|
20
|
+
|
|
21
|
+
The plaintext should be organized in to a rectangle. The size of the
|
|
22
|
+
rectangle (`r x c`) should be decided by the length of the message,
|
|
23
|
+
such that `c >= r` and `c - r <= 1`, where `c` is the number of columns
|
|
24
|
+
and `r` is the number of rows.
|
|
25
|
+
|
|
26
|
+
Our normalized text is 54 characters long, dictating a rectangle with
|
|
27
|
+
`c = 8` and `r = 7`:
|
|
28
|
+
|
|
29
|
+
```plain
|
|
30
|
+
ifmanwas
|
|
31
|
+
meanttos
|
|
32
|
+
tayonthe
|
|
33
|
+
groundgo
|
|
34
|
+
dwouldha
|
|
35
|
+
vegivenu
|
|
36
|
+
sroots
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
The coded message is obtained by reading down the columns going left to
|
|
40
|
+
right.
|
|
41
|
+
|
|
42
|
+
The message above is coded as:
|
|
43
|
+
|
|
44
|
+
```plain
|
|
45
|
+
imtgdvsfearwermayoogoanouuiontnnlvtwttddesaohghnsseoau
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
Output the encoded text in chunks. Phrases that fill perfect squares
|
|
49
|
+
`(r X r)` should be output in `r`-length chunks separated by spaces.
|
|
50
|
+
Imperfect squares will have `n` empty spaces. Those spaces should be distributed evenly across the last `n` rows.
|
|
51
|
+
|
|
52
|
+
```plain
|
|
53
|
+
imtgdvs fearwer mayoogo anouuio ntnnlvt wttddes aohghn sseoau
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
Notice that were we to stack these, we could visually decode the
|
|
57
|
+
cyphertext back in to the original message:
|
|
58
|
+
|
|
59
|
+
```plain
|
|
60
|
+
imtgdvs
|
|
61
|
+
fearwer
|
|
62
|
+
mayoogo
|
|
63
|
+
anouuio
|
|
64
|
+
ntnnlvt
|
|
65
|
+
wttddes
|
|
66
|
+
aohghn
|
|
67
|
+
sseoau
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
## Getting Started
|
|
71
|
+
|
|
72
|
+
Make sure you have read [the C++ page](http://exercism.io/languages/cpp) on
|
|
73
|
+
exercism.io. This covers the basic information on setting up the development
|
|
74
|
+
environment expected by the exercises.
|
|
75
|
+
|
|
76
|
+
## Passing the Tests
|
|
77
|
+
|
|
78
|
+
Get the first test compiling, linking and passing by following the [three
|
|
79
|
+
rules of test-driven development](http://butunclebob.com/ArticleS.UncleBob.TheThreeRulesOfTdd).
|
|
80
|
+
Create just enough structure by declaring namespaces, functions, classes,
|
|
81
|
+
etc., to satisfy any compiler errors and get the test to fail. Then write
|
|
82
|
+
just enough code to get the test to pass. Once you've done that,
|
|
83
|
+
uncomment the next test by moving the following line past the next test.
|
|
84
|
+
|
|
85
|
+
```C++
|
|
86
|
+
#if defined(EXERCISM_RUN_ALL_TESTS)
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
This may result in compile errors as new constructs may be invoked that
|
|
90
|
+
you haven't yet declared or defined. Again, fix the compile errors minimally
|
|
91
|
+
to get a failing test, then change the code minimally to pass the test,
|
|
92
|
+
refactor your implementation for readability and expressiveness and then
|
|
93
|
+
go on to the next test.
|
|
94
|
+
|
|
95
|
+
Try to use standard C++11 facilities in preference to writing your own
|
|
96
|
+
low-level algorithms or facilities by hand. [CppReference](http://en.cppreference.com/)
|
|
97
|
+
is a wiki reference to the C++ language and standard library. If you
|
|
98
|
+
are new to C++, but have programmed in C, beware of
|
|
99
|
+
[C traps and pitfalls](http://www.slideshare.net/LegalizeAdulthood/c-traps-and-pitfalls-for-c-programmers).
|
|
100
|
+
|
|
101
|
+
## Source
|
|
102
|
+
|
|
103
|
+
J Dalbey's Programming Practice problems [http://users.csc.calpoly.edu/~jdalbey/103/Projects/ProgrammingPractice.html](http://users.csc.calpoly.edu/~jdalbey/103/Projects/ProgrammingPractice.html)
|
|
104
|
+
|
|
105
|
+
## Submitting Incomplete Solutions
|
|
106
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|