trackler 2.2.0.2 → 2.2.0.3
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/fixtures/deprecation-fixtures/tracks/repo-nope/config.json +2 -0
- data/fixtures/deprecation-fixtures/tracks/repo-yepp/config.json +3 -0
- data/lib/trackler/track.rb +1 -1
- data/lib/trackler/version.rb +1 -1
- data/tracks/csharp/config/exercise_readme.go.tmpl +16 -0
- data/tracks/csharp/exercises/accumulate/README.md +44 -0
- data/tracks/csharp/exercises/acronym/README.md +21 -0
- data/tracks/csharp/exercises/all-your-base/README.md +41 -0
- data/tracks/csharp/exercises/allergies/README.md +46 -0
- data/tracks/csharp/exercises/alphametics/README.md +48 -0
- data/tracks/csharp/exercises/anagram/README.md +19 -0
- data/tracks/csharp/exercises/atbash-cipher/README.md +40 -0
- data/tracks/csharp/exercises/bank-account/README.md +41 -0
- data/tracks/csharp/exercises/beer-song/README.md +336 -0
- data/tracks/csharp/exercises/binary-search-tree/README.md +66 -0
- data/tracks/csharp/exercises/binary-search/README.md +47 -0
- data/tracks/csharp/exercises/bob/README.md +24 -0
- data/tracks/csharp/exercises/book-store/README.md +80 -0
- data/tracks/csharp/exercises/bowling/README.md +59 -0
- data/tracks/csharp/exercises/bracket-push/README.md +16 -0
- data/tracks/csharp/exercises/change/README.md +29 -0
- data/tracks/csharp/exercises/circular-buffer/README.md +56 -0
- data/tracks/csharp/exercises/clock/README.md +25 -0
- data/tracks/csharp/exercises/connect/README.md +40 -0
- data/tracks/csharp/exercises/crypto-square/README.md +80 -0
- data/tracks/csharp/exercises/custom-set/README.md +23 -0
- data/tracks/csharp/exercises/diamond/README.md +75 -0
- data/tracks/csharp/exercises/difference-of-squares/README.md +30 -0
- data/tracks/csharp/exercises/diffie-hellman/README.md +55 -0
- data/tracks/csharp/exercises/dominoes/README.md +24 -0
- data/tracks/csharp/exercises/dot-dsl/README.md +37 -0
- data/tracks/csharp/exercises/error-handling/README.md +19 -0
- data/tracks/csharp/exercises/etl/README.md +57 -0
- data/tracks/csharp/exercises/flatten-array/README.md +24 -0
- data/tracks/csharp/exercises/food-chain/README.md +80 -0
- data/tracks/csharp/exercises/forth/README.md +39 -0
- data/tracks/csharp/exercises/gigasecond/README.md +17 -0
- data/tracks/csharp/exercises/go-counting/README.md +43 -0
- data/tracks/csharp/exercises/grade-school/README.md +48 -0
- data/tracks/csharp/exercises/grains/README.md +40 -0
- data/tracks/csharp/exercises/grep/README.md +77 -0
- data/tracks/csharp/exercises/hamming/README.md +48 -0
- data/tracks/csharp/exercises/hangman/README.md +32 -0
- data/tracks/csharp/exercises/hello-world/README.md +27 -0
- data/tracks/csharp/exercises/house/README.md +123 -0
- data/tracks/csharp/exercises/isogram/README.md +25 -0
- data/tracks/csharp/exercises/kindergarten-garden/README.md +72 -0
- data/tracks/csharp/exercises/largest-series-product/README.md +26 -0
- data/tracks/csharp/exercises/leap/README.md +39 -0
- data/tracks/csharp/exercises/ledger/README.md +24 -0
- data/tracks/csharp/exercises/linked-list/README.md +40 -0
- data/tracks/csharp/exercises/list-ops/README.md +19 -0
- data/tracks/csharp/exercises/luhn/README.md +77 -0
- data/tracks/csharp/exercises/markdown/README.md +28 -0
- data/tracks/csharp/exercises/matrix/README.md +51 -0
- data/tracks/csharp/exercises/meetup/README.md +36 -0
- data/tracks/csharp/exercises/minesweeper/README.md +36 -0
- data/tracks/csharp/exercises/nth-prime/README.md +29 -0
- data/tracks/csharp/exercises/nucleotide-count/README.md +43 -0
- data/tracks/csharp/exercises/ocr-numbers/README.md +91 -0
- data/tracks/csharp/exercises/palindrome-products/README.md +51 -0
- data/tracks/csharp/exercises/pangram/README.md +21 -0
- data/tracks/csharp/exercises/parallel-letter-frequency/README.md +17 -0
- data/tracks/csharp/exercises/pascals-triangle/README.md +27 -0
- data/tracks/csharp/exercises/perfect-numbers/README.md +30 -0
- data/tracks/csharp/exercises/phone-number/README.md +40 -0
- data/tracks/csharp/exercises/pig-latin/README.md +30 -0
- data/tracks/csharp/exercises/poker/README.md +18 -0
- data/tracks/csharp/exercises/pov/README.md +52 -0
- data/tracks/csharp/exercises/prime-factors/README.md +42 -0
- data/tracks/csharp/exercises/protein-translation/README.md +55 -0
- data/tracks/csharp/exercises/proverb/README.md +28 -0
- data/tracks/csharp/exercises/pythagorean-triplet/README.md +30 -0
- data/tracks/csharp/exercises/queen-attack/README.md +39 -0
- data/tracks/csharp/exercises/rail-fence-cipher/README.md +66 -0
- data/tracks/csharp/exercises/raindrops/README.md +30 -0
- data/tracks/csharp/exercises/react/README.md +29 -0
- data/tracks/csharp/exercises/rectangles/README.md +73 -0
- data/tracks/csharp/exercises/rna-transcription/README.md +31 -0
- data/tracks/csharp/exercises/robot-name/README.md +28 -0
- data/tracks/csharp/exercises/robot-simulator/README.md +40 -0
- data/tracks/csharp/exercises/roman-numerals/README.md +59 -0
- data/tracks/csharp/exercises/rotational-cipher/README.md +42 -0
- data/tracks/csharp/exercises/run-length-encoding/README.md +36 -0
- data/tracks/csharp/exercises/saddle-points/README.md +44 -0
- data/tracks/csharp/exercises/say/README.md +75 -0
- data/tracks/csharp/exercises/scale-generator/README.md +66 -0
- data/tracks/csharp/exercises/scrabble-score/README.md +50 -0
- data/tracks/csharp/exercises/secret-handshake/README.md +41 -0
- data/tracks/csharp/exercises/series/README.md +33 -0
- data/tracks/csharp/exercises/sgf-parsing/README.md +78 -0
- data/tracks/csharp/exercises/sieve/README.md +40 -0
- data/tracks/csharp/exercises/simple-cipher/README.md +96 -0
- data/tracks/csharp/exercises/simple-linked-list/README.md +38 -0
- data/tracks/csharp/exercises/space-age/README.md +30 -0
- data/tracks/csharp/exercises/strain/README.md +46 -0
- data/tracks/csharp/exercises/sublist/README.md +32 -0
- data/tracks/csharp/exercises/sum-of-multiples/README.md +28 -0
- data/tracks/csharp/exercises/tournament/README.md +74 -0
- data/tracks/csharp/exercises/transpose/README.md +71 -0
- data/tracks/csharp/exercises/tree-building/README.md +36 -0
- data/tracks/csharp/exercises/triangle/README.md +32 -0
- data/tracks/csharp/exercises/twelve-days/README.md +45 -0
- data/tracks/csharp/exercises/two-bucket/README.md +42 -0
- data/tracks/csharp/exercises/variable-length-quantity/README.md +50 -0
- data/tracks/csharp/exercises/word-count/README.md +25 -0
- data/tracks/csharp/exercises/word-search/README.md +43 -0
- data/tracks/csharp/exercises/wordy/README.md +73 -0
- data/tracks/csharp/exercises/zebra-puzzle/README.md +43 -0
- data/tracks/csharp/exercises/zipper/README.md +41 -0
- data/tracks/dart/config/exercise_readme.go.tmpl +16 -0
- data/tracks/dart/exercises/bob/README.md +18 -0
- data/tracks/dart/exercises/difference-of-squares/README.md +19 -0
- data/tracks/dart/exercises/gigasecond/README.md +11 -0
- data/tracks/dart/exercises/hamming/README.md +42 -0
- data/tracks/dart/exercises/hello-world/README.md +21 -0
- data/tracks/dart/exercises/leap/README.md +33 -0
- data/tracks/dart/exercises/rna-transcription/README.md +25 -0
- data/tracks/delphi/config.json +25 -32
- data/tracks/elixir/config.json +255 -3
- data/tracks/elixir/config/exercise_readme.go.tmpl +16 -0
- data/tracks/elixir/exercises/accumulate/README.md +72 -0
- data/tracks/elixir/exercises/acronym/README.md +52 -0
- data/tracks/elixir/exercises/all-your-base/README.md +72 -0
- data/tracks/elixir/exercises/allergies/README.md +74 -0
- data/tracks/elixir/exercises/anagram/README.md +50 -0
- data/tracks/elixir/exercises/atbash-cipher/README.md +71 -0
- data/tracks/elixir/exercises/bank-account/README.md +67 -0
- data/tracks/elixir/exercises/beer-song/README.md +364 -0
- data/tracks/elixir/exercises/binary-search/README.md +78 -0
- data/tracks/elixir/exercises/binary/README.md +72 -0
- data/tracks/elixir/exercises/bob/README.md +55 -0
- data/tracks/elixir/exercises/bowling/README.md +90 -0
- data/tracks/elixir/exercises/bowling/bowling_test.exs +91 -18
- data/tracks/elixir/exercises/bowling/example.exs +4 -4
- data/tracks/elixir/exercises/bracket-push/README.md +47 -0
- data/tracks/elixir/exercises/change/README.md +60 -0
- data/tracks/elixir/exercises/clock/README.md +50 -0
- data/tracks/elixir/exercises/collatz-conjecture/README.md +70 -0
- data/tracks/elixir/exercises/connect/README.md +71 -0
- data/tracks/elixir/exercises/crypto-square/README.md +111 -0
- data/tracks/elixir/exercises/custom-set/README.md +48 -0
- data/tracks/elixir/exercises/diamond/README.md +96 -0
- data/tracks/elixir/exercises/difference-of-squares/README.md +56 -0
- data/tracks/elixir/exercises/diffie-hellman/README.md +93 -0
- data/tracks/elixir/exercises/dominoes/README.md +55 -0
- data/tracks/elixir/exercises/dot-dsl/README.md +65 -0
- data/tracks/elixir/exercises/etl/README.md +88 -0
- data/tracks/elixir/exercises/flatten-array/README.md +55 -0
- data/tracks/elixir/exercises/forth/README.md +66 -0
- data/tracks/elixir/exercises/gigasecond/README.md +48 -0
- data/tracks/elixir/exercises/grade-school/README.md +79 -0
- data/tracks/elixir/exercises/grains/README.md +71 -0
- data/tracks/elixir/exercises/grep/README.md +108 -0
- data/tracks/elixir/exercises/hamming/README.md +79 -0
- data/tracks/elixir/exercises/hello-world/README.md +58 -0
- data/tracks/elixir/exercises/hexadecimal/README.md +51 -0
- data/tracks/elixir/exercises/isogram/README.md +56 -0
- data/tracks/elixir/exercises/kindergarten-garden/README.md +103 -0
- data/tracks/elixir/exercises/largest-series-product/README.md +57 -0
- data/tracks/elixir/exercises/leap/README.md +70 -0
- data/tracks/elixir/exercises/list-ops/README.md +47 -0
- data/tracks/elixir/exercises/luhn/README.md +108 -0
- data/tracks/elixir/exercises/markdown/README.md +55 -0
- data/tracks/elixir/exercises/matrix/README.md +82 -0
- data/tracks/elixir/exercises/meetup/README.md +67 -0
- data/tracks/elixir/exercises/minesweeper/README.md +67 -0
- data/tracks/elixir/exercises/nth-prime/README.md +52 -0
- data/tracks/elixir/exercises/nucleotide-count/README.md +70 -0
- data/tracks/elixir/exercises/ocr-numbers/README.md +122 -0
- data/tracks/elixir/exercises/palindrome-products/README.md +77 -0
- data/tracks/elixir/exercises/pangram/README.md +52 -0
- data/tracks/elixir/exercises/parallel-letter-frequency/README.md +48 -0
- data/tracks/elixir/exercises/pascals-triangle/README.md +58 -0
- data/tracks/elixir/exercises/perfect-numbers/README.md +61 -0
- data/tracks/elixir/exercises/phone-number/README.md +71 -0
- data/tracks/elixir/exercises/pig-latin/README.md +61 -0
- data/tracks/elixir/exercises/poker/README.md +49 -0
- data/tracks/elixir/exercises/prime-factors/README.md +73 -0
- data/tracks/elixir/exercises/protein-translation/README.md +86 -0
- data/tracks/elixir/exercises/pythagorean-triplet/README.md +61 -0
- data/tracks/elixir/exercises/queen-attack/README.md +70 -0
- data/tracks/elixir/exercises/rail-fence-cipher/README.md +97 -0
- data/tracks/elixir/exercises/raindrops/README.md +61 -0
- data/tracks/elixir/exercises/rna-transcription/README.md +62 -0
- data/tracks/elixir/exercises/robot-simulator/README.md +71 -0
- data/tracks/elixir/exercises/roman-numerals/README.md +86 -0
- data/tracks/elixir/exercises/rotational-cipher/README.md +73 -0
- data/tracks/elixir/exercises/run-length-encoding/README.md +67 -0
- data/tracks/elixir/exercises/saddle-points/README.md +70 -0
- data/tracks/elixir/exercises/say/README.md +106 -0
- data/tracks/elixir/exercises/scale-generator/README.md +97 -0
- data/tracks/elixir/exercises/scrabble-score/README.md +81 -0
- data/tracks/elixir/exercises/secret-handshake/README.md +94 -0
- data/tracks/elixir/exercises/series/README.md +64 -0
- data/tracks/elixir/exercises/sieve/README.md +71 -0
- data/tracks/elixir/exercises/simple-cipher/README.md +127 -0
- data/tracks/elixir/exercises/simple-linked-list/README.md +65 -0
- data/tracks/elixir/exercises/space-age/README.md +61 -0
- data/tracks/elixir/exercises/strain/README.md +80 -0
- data/tracks/elixir/exercises/sublist/README.md +58 -0
- data/tracks/elixir/exercises/sum-of-multiples/README.md +55 -0
- data/tracks/elixir/exercises/tournament/README.md +110 -0
- data/tracks/elixir/exercises/triangle/README.md +63 -0
- data/tracks/elixir/exercises/twelve-days/README.md +72 -0
- data/tracks/elixir/exercises/word-count/README.md +56 -0
- data/tracks/elixir/exercises/wordy/README.md +100 -0
- data/tracks/elixir/exercises/zipper/README.md +68 -0
- data/tracks/fsharp/config/exercise_readme.go.tmpl +16 -0
- data/tracks/fsharp/exercises/accumulate/README.md +40 -0
- data/tracks/fsharp/exercises/acronym/README.md +15 -0
- data/tracks/fsharp/exercises/all-your-base/README.md +35 -0
- data/tracks/fsharp/exercises/allergies/README.md +37 -0
- data/tracks/fsharp/exercises/alphametics/README.md +41 -0
- data/tracks/fsharp/exercises/anagram/README.md +13 -0
- data/tracks/fsharp/exercises/atbash-cipher/README.md +34 -0
- data/tracks/fsharp/exercises/bank-account/README.md +30 -0
- data/tracks/fsharp/exercises/beer-song/README.md +331 -0
- data/tracks/fsharp/exercises/binary-search-tree/README.md +60 -0
- data/tracks/fsharp/exercises/binary-search/README.md +41 -0
- data/tracks/fsharp/exercises/bob/README.md +18 -0
- data/tracks/fsharp/exercises/book-store/README.md +74 -0
- data/tracks/fsharp/exercises/bowling/README.md +53 -0
- data/tracks/fsharp/exercises/bracket-push/README.md +10 -0
- data/tracks/fsharp/exercises/change/README.md +23 -0
- data/tracks/fsharp/exercises/circular-buffer/README.md +50 -0
- data/tracks/fsharp/exercises/clock/README.md +13 -0
- data/tracks/fsharp/exercises/connect/README.md +34 -0
- data/tracks/fsharp/exercises/crypto-square/README.md +74 -0
- data/tracks/fsharp/exercises/custom-set/README.md +11 -0
- data/tracks/fsharp/exercises/diamond/README.md +62 -0
- data/tracks/fsharp/exercises/difference-of-squares/README.md +25 -0
- data/tracks/fsharp/exercises/diffie-hellman/README.md +49 -0
- data/tracks/fsharp/exercises/dominoes/README.md +18 -0
- data/tracks/fsharp/exercises/dot-dsl/README.md +28 -0
- data/tracks/fsharp/exercises/error-handling/README.md +13 -0
- data/tracks/fsharp/exercises/etl/README.md +51 -0
- data/tracks/fsharp/exercises/food-chain/README.md +74 -0
- data/tracks/fsharp/exercises/forth/README.md +29 -0
- data/tracks/fsharp/exercises/gigasecond/README.md +15 -0
- data/tracks/fsharp/exercises/go-counting/README.md +37 -0
- data/tracks/fsharp/exercises/grade-school/README.md +47 -0
- data/tracks/fsharp/exercises/grains/README.md +39 -0
- data/tracks/fsharp/exercises/grep/README.md +71 -0
- data/tracks/fsharp/exercises/hamming/README.md +42 -0
- data/tracks/fsharp/exercises/hangman/README.md +21 -0
- data/tracks/fsharp/exercises/hello-world/README.md +21 -0
- data/tracks/fsharp/exercises/house/README.md +117 -0
- data/tracks/fsharp/exercises/isogram/README.md +19 -0
- data/tracks/fsharp/exercises/kindergarten-garden/README.md +66 -0
- data/tracks/fsharp/exercises/largest-series-product/README.md +20 -0
- data/tracks/fsharp/exercises/leap/README.md +33 -0
- data/tracks/fsharp/exercises/ledger/README.md +18 -0
- data/tracks/fsharp/exercises/lens-person/README.md +15 -0
- data/tracks/fsharp/exercises/linked-list/README.md +50 -0
- data/tracks/fsharp/exercises/list-ops/README.md +10 -0
- data/tracks/fsharp/exercises/luhn/README.md +71 -0
- data/tracks/fsharp/exercises/markdown/README.md +18 -0
- data/tracks/fsharp/exercises/matrix/README.md +45 -0
- data/tracks/fsharp/exercises/meetup/README.md +30 -0
- data/tracks/fsharp/exercises/minesweeper/README.md +30 -0
- data/tracks/fsharp/exercises/nth-prime/README.md +21 -0
- data/tracks/fsharp/exercises/nucleotide-count/README.md +33 -0
- data/tracks/fsharp/exercises/ocr-numbers/README.md +85 -0
- data/tracks/fsharp/exercises/palindrome-products/README.md +44 -0
- data/tracks/fsharp/exercises/pangram/README.md +15 -0
- data/tracks/fsharp/exercises/parallel-letter-frequency/README.md +15 -0
- data/tracks/fsharp/exercises/pascals-triangle/README.md +21 -0
- data/tracks/fsharp/exercises/perfect-numbers/README.md +24 -0
- data/tracks/fsharp/exercises/phone-number/README.md +34 -0
- data/tracks/fsharp/exercises/pig-latin/README.md +24 -0
- data/tracks/fsharp/exercises/poker/README.md +15 -0
- data/tracks/fsharp/exercises/pov/README.md +46 -0
- data/tracks/fsharp/exercises/prime-factors/README.md +36 -0
- data/tracks/fsharp/exercises/protein-translation/README.md +49 -0
- data/tracks/fsharp/exercises/proverb/README.md +22 -0
- data/tracks/fsharp/exercises/pythagorean-triplet/README.md +24 -0
- data/tracks/fsharp/exercises/queen-attack/README.md +33 -0
- data/tracks/fsharp/exercises/rail-fence-cipher/README.md +60 -0
- data/tracks/fsharp/exercises/raindrops/README.md +27 -0
- data/tracks/fsharp/exercises/react/README.md +19 -0
- data/tracks/fsharp/exercises/rectangles/README.md +67 -0
- data/tracks/fsharp/exercises/rna-transcription/README.md +29 -0
- data/tracks/fsharp/exercises/robot-name/README.md +22 -0
- data/tracks/fsharp/exercises/robot-simulator/README.md +34 -0
- data/tracks/fsharp/exercises/roman-numerals/README.md +49 -0
- data/tracks/fsharp/exercises/run-length-encoding/README.md +30 -0
- data/tracks/fsharp/exercises/saddle-points/README.md +33 -0
- data/tracks/fsharp/exercises/say/README.md +69 -0
- data/tracks/fsharp/exercises/scale-generator/README.md +60 -0
- data/tracks/fsharp/exercises/scrabble-score/README.md +44 -0
- data/tracks/fsharp/exercises/secret-handshake/README.md +35 -0
- data/tracks/fsharp/exercises/series/README.md +27 -0
- data/tracks/fsharp/exercises/sgf-parsing/README.md +68 -0
- data/tracks/fsharp/exercises/sieve/README.md +34 -0
- data/tracks/fsharp/exercises/simple-cipher/README.md +90 -0
- data/tracks/fsharp/exercises/simple-linked-list/README.md +28 -0
- data/tracks/fsharp/exercises/space-age/README.md +28 -0
- data/tracks/fsharp/exercises/strain/README.md +40 -0
- data/tracks/fsharp/exercises/sublist/README.md +21 -0
- data/tracks/fsharp/exercises/sum-of-multiples/README.md +18 -0
- data/tracks/fsharp/exercises/tournament/README.md +68 -0
- data/tracks/fsharp/exercises/transpose/README.md +65 -0
- data/tracks/fsharp/exercises/tree-building/README.md +30 -0
- data/tracks/fsharp/exercises/triangle/README.md +26 -0
- data/tracks/fsharp/exercises/twelve-days/README.md +39 -0
- data/tracks/fsharp/exercises/two-bucket/README.md +36 -0
- data/tracks/fsharp/exercises/variable-length-quantity/README.md +39 -0
- data/tracks/fsharp/exercises/word-count/README.md +19 -0
- data/tracks/fsharp/exercises/word-search/README.md +30 -0
- data/tracks/fsharp/exercises/wordy/README.md +68 -0
- data/tracks/fsharp/exercises/zebra-puzzle/README.md +32 -0
- data/tracks/fsharp/exercises/zipper/README.md +31 -0
- data/tracks/haskell/README.md +2 -2
- data/tracks/javascript/config.json +232 -4
- data/tracks/kotlin/config.json +8 -1
- data/tracks/kotlin/exercises/rotational-cipher/build.gradle +28 -0
- data/tracks/kotlin/exercises/rotational-cipher/src/example/kotlin/RotationalCipher.kt +18 -0
- data/tracks/kotlin/exercises/rotational-cipher/src/main/kotlin/.keep +0 -0
- data/tracks/kotlin/exercises/rotational-cipher/src/test/kotlin/RotationalCipherTest.kt +81 -0
- data/tracks/kotlin/exercises/settings.gradle +1 -0
- data/tracks/powershell/config/exercise_readme.go.tmpl +16 -0
- data/tracks/powershell/exercises/hamming/README.md +42 -0
- data/tracks/powershell/exercises/hello-world/README.md +21 -0
- data/tracks/purescript/README.md +4 -4
- data/tracks/scala/config.json +266 -6
- data/tracks/scala/config/exercise_readme.go.tmpl +16 -0
- data/tracks/scala/exercises/accumulate/README.md +46 -0
- data/tracks/scala/exercises/acronym/README.md +26 -0
- data/tracks/scala/exercises/all-your-base/README.md +46 -0
- data/tracks/scala/exercises/allergies/README.md +48 -0
- data/tracks/scala/exercises/alphametics/README.md +46 -0
- data/tracks/scala/exercises/anagram/README.md +24 -0
- data/tracks/scala/exercises/atbash-cipher/README.md +45 -0
- data/tracks/scala/exercises/bank-account/README.md +54 -0
- data/tracks/scala/exercises/beer-song/README.md +338 -0
- data/tracks/scala/exercises/binary-search-tree/README.md +71 -0
- data/tracks/scala/exercises/binary-search/README.md +52 -0
- data/tracks/scala/exercises/binary/README.md +46 -0
- data/tracks/scala/exercises/bob/README.md +29 -0
- data/tracks/scala/exercises/book-store/README.md +85 -0
- data/tracks/scala/exercises/bowling/README.md +64 -0
- data/tracks/scala/exercises/bracket-push/README.md +21 -0
- data/tracks/scala/exercises/change/README.md +34 -0
- data/tracks/scala/exercises/clock/README.md +24 -0
- data/tracks/scala/exercises/connect/README.md +53 -0
- data/tracks/scala/exercises/crypto-square/README.md +85 -0
- data/tracks/scala/exercises/custom-set/README.md +22 -0
- data/tracks/scala/exercises/difference-of-squares/README.md +30 -0
- data/tracks/scala/exercises/dominoes/README.md +29 -0
- data/tracks/scala/exercises/etl/README.md +62 -0
- data/tracks/scala/exercises/food-chain/README.md +81 -0
- data/tracks/scala/exercises/forth/README.md +40 -0
- data/tracks/scala/exercises/gigasecond/README.md +26 -0
- data/tracks/scala/exercises/grade-school/README.md +53 -0
- data/tracks/scala/exercises/grains/README.md +45 -0
- data/tracks/scala/exercises/hamming/README.md +112 -0
- data/tracks/scala/exercises/hello-world/README.md +38 -0
- data/tracks/scala/exercises/hexadecimal/README.md +25 -0
- data/tracks/scala/exercises/house/README.md +124 -0
- data/tracks/scala/exercises/isogram/README.md +30 -0
- data/tracks/scala/exercises/kindergarten-garden/README.md +77 -0
- data/tracks/scala/exercises/largest-series-product/README.md +31 -0
- data/tracks/scala/exercises/leap/README.md +50 -0
- data/tracks/scala/exercises/lens-person/README.md +11 -7
- data/tracks/scala/exercises/linked-list/README.md +45 -0
- data/tracks/scala/exercises/luhn/README.md +82 -0
- data/tracks/scala/exercises/matrix/README.md +56 -0
- data/tracks/scala/exercises/meetup/README.md +41 -0
- data/tracks/scala/exercises/minesweeper/README.md +41 -0
- data/tracks/scala/exercises/nth-prime/README.md +26 -0
- data/tracks/scala/exercises/nucleotide-count/README.md +107 -0
- data/tracks/scala/exercises/ocr-numbers/README.md +96 -0
- data/tracks/scala/exercises/octal/README.md +60 -0
- data/tracks/scala/exercises/palindrome-products/README.md +51 -0
- data/tracks/scala/exercises/pangram/README.md +26 -0
- data/tracks/scala/exercises/parallel-letter-frequency/README.md +50 -0
- data/tracks/scala/exercises/pascals-triangle/README.md +32 -0
- data/tracks/scala/exercises/perfect-numbers/README.md +35 -0
- data/tracks/scala/exercises/phone-number/README.md +56 -0
- data/tracks/scala/exercises/pig-latin/README.md +35 -0
- data/tracks/scala/exercises/prime-factors/README.md +47 -0
- data/tracks/scala/exercises/protein-translation/README.md +60 -0
- data/tracks/scala/exercises/pythagorean-triplet/README.md +35 -0
- data/tracks/scala/exercises/queen-attack/README.md +44 -0
- data/tracks/scala/exercises/rail-fence-cipher/README.md +71 -0
- data/tracks/scala/exercises/raindrops/README.md +35 -0
- data/tracks/scala/exercises/rna-transcription/README.md +36 -0
- data/tracks/scala/exercises/robot-name/README.md +40 -0
- data/tracks/scala/exercises/robot-simulator/README.md +45 -0
- data/tracks/scala/exercises/roman-numerals/README.md +72 -0
- data/tracks/scala/exercises/run-length-encoding/README.md +41 -0
- data/tracks/scala/exercises/saddle-points/README.md +44 -0
- data/tracks/scala/exercises/say/README.md +80 -0
- data/tracks/scala/exercises/scrabble-score/README.md +55 -0
- data/tracks/scala/exercises/secret-handshake/README.md +46 -0
- data/tracks/scala/exercises/series/README.md +38 -0
- data/tracks/scala/exercises/sgf-parsing/README.md +79 -0
- data/tracks/scala/exercises/sieve/README.md +45 -0
- data/tracks/scala/exercises/simple-cipher/README.md +101 -0
- data/tracks/scala/exercises/simple-linked-list/README.md +39 -0
- data/tracks/scala/exercises/space-age/README.md +35 -0
- data/tracks/scala/exercises/spiral-matrix/README.md +41 -0
- data/tracks/scala/exercises/strain/README.md +51 -0
- data/tracks/scala/exercises/sublist/README.md +32 -0
- data/tracks/scala/exercises/sum-of-multiples/README.md +29 -0
- data/tracks/scala/exercises/triangle/README.md +37 -0
- data/tracks/scala/exercises/trinary/README.md +39 -0
- data/tracks/scala/exercises/variable-length-quantity/README.md +54 -0
- data/tracks/scala/exercises/word-count/README.md +30 -0
- data/tracks/scala/exercises/wordy/README.md +74 -0
- data/tracks/scala/exercises/zebra-puzzle/README.md +43 -0
- data/tracks/scala/exercises/zipper/README.md +42 -0
- metadata +401 -1
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# Alphametics
|
|
2
|
+
|
|
3
|
+
Write a function to solve alphametics puzzles.
|
|
4
|
+
|
|
5
|
+
[Alphametics](https://en.wikipedia.org/wiki/Alphametics) is a puzzle where
|
|
6
|
+
letters in words are replaced with numbers.
|
|
7
|
+
|
|
8
|
+
For example `SEND + MORE = MONEY`:
|
|
9
|
+
|
|
10
|
+
```
|
|
11
|
+
S E N D
|
|
12
|
+
M O R E +
|
|
13
|
+
-----------
|
|
14
|
+
M O N E Y
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
Replacing these with valid numbers gives:
|
|
18
|
+
|
|
19
|
+
```
|
|
20
|
+
9 5 6 7
|
|
21
|
+
1 0 8 5 +
|
|
22
|
+
-----------
|
|
23
|
+
1 0 6 5 2
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
This is correct because every letter is replaced by a different number and the
|
|
27
|
+
words, translated into numbers, then make a valid sum.
|
|
28
|
+
|
|
29
|
+
Each letter must represent a different digit, and the leading digit of
|
|
30
|
+
a multi-digit number must not be zero.
|
|
31
|
+
|
|
32
|
+
Write a function to solve alphametics puzzles.
|
|
33
|
+
|
|
34
|
+
## Hints
|
|
35
|
+
- To parse the text, you could try to use the [FParsec](http://www.quanttec.com/fparsec/tutorial.html) library.
|
|
36
|
+
- You can solve this exercise with a brute force algorithm, but this will possibly have a poor runtime performance.
|
|
37
|
+
Try to find a more sophisticated solution. Hint: You could try the column-wise addition algorithm that is usually taught in school.
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
## Submitting Incomplete Solutions
|
|
41
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# Anagram
|
|
2
|
+
|
|
3
|
+
Given a word and a list of possible anagrams, select the correct sublist.
|
|
4
|
+
|
|
5
|
+
Given `"listen"` and a list of candidates like `"enlists" "google"
|
|
6
|
+
"inlets" "banana"` the program should return a list containing
|
|
7
|
+
`"inlets"`.
|
|
8
|
+
## Source
|
|
9
|
+
|
|
10
|
+
Inspired by the Extreme Startup game [https://github.com/rchatley/extreme_startup](https://github.com/rchatley/extreme_startup)
|
|
11
|
+
|
|
12
|
+
## Submitting Incomplete Solutions
|
|
13
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
|
@@ -0,0 +1,34 @@
|
|
|
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
|
+
## Source
|
|
30
|
+
|
|
31
|
+
Wikipedia [http://en.wikipedia.org/wiki/Atbash](http://en.wikipedia.org/wiki/Atbash)
|
|
32
|
+
|
|
33
|
+
## Submitting Incomplete Solutions
|
|
34
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# Bank Account
|
|
2
|
+
|
|
3
|
+
Simulate a bank account supporting opening/closing, withdrawals, and deposits
|
|
4
|
+
of money. Watch out for concurrent transactions!
|
|
5
|
+
|
|
6
|
+
A bank account can be accessed in multiple ways. Clients can make
|
|
7
|
+
deposits and withdrawals using the internet, mobile phones, etc. Shops
|
|
8
|
+
can charge against the account.
|
|
9
|
+
|
|
10
|
+
Create an account that can be accessed from multiple threads/processes
|
|
11
|
+
(terminology depends on your programming language).
|
|
12
|
+
|
|
13
|
+
It should be possible to close an account; operations against a closed
|
|
14
|
+
account must fail.
|
|
15
|
+
|
|
16
|
+
## Instructions
|
|
17
|
+
|
|
18
|
+
Run the test file, and fix each of the errors in turn. When you get the
|
|
19
|
+
first test to pass, go to the first pending or skipped test, and make
|
|
20
|
+
that pass as well. When all of the tests are passing, feel free to
|
|
21
|
+
submit.
|
|
22
|
+
|
|
23
|
+
Remember that passing code is just the first step. The goal is to work
|
|
24
|
+
towards a solution that is as readable and expressive as you can make
|
|
25
|
+
it.
|
|
26
|
+
|
|
27
|
+
Have fun!
|
|
28
|
+
|
|
29
|
+
## Submitting Incomplete Solutions
|
|
30
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
|
@@ -0,0 +1,331 @@
|
|
|
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
|
+
## Hints
|
|
324
|
+
- Try to capture the structure of the song in your code, where you build up the song by composing its parts.
|
|
325
|
+
|
|
326
|
+
## Source
|
|
327
|
+
|
|
328
|
+
Learn to Program by Chris Pine [http://pine.fm/LearnToProgram/?Chapter=06](http://pine.fm/LearnToProgram/?Chapter=06)
|
|
329
|
+
|
|
330
|
+
## Submitting Incomplete Solutions
|
|
331
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|