trackler 2.2.0.1 → 2.2.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/fixtures/tracks/fake/config.json +4 -3
- data/fixtures/tracks/fruit/config.json +4 -3
- data/lib/trackler/track.rb +2 -2
- data/lib/trackler/version.rb +1 -1
- data/tracks/{java/exercises/allergies/.meta/readme.go.tmpl → c/config/exercise_readme.go.tmpl} +0 -1
- data/tracks/c/exercises/acronym/README.md +47 -0
- data/tracks/c/exercises/all-your-base/README.md +67 -0
- data/tracks/c/exercises/allergies/README.md +69 -0
- data/tracks/c/exercises/anagram/README.md +45 -0
- data/tracks/c/exercises/atbash-cipher/README.md +66 -0
- data/tracks/c/exercises/beer-song/README.md +359 -0
- data/tracks/c/exercises/binary/README.md +67 -0
- data/tracks/c/exercises/binary-search/README.md +73 -0
- data/tracks/c/exercises/bob/README.md +50 -0
- data/tracks/c/exercises/clock/README.md +45 -0
- data/tracks/c/exercises/difference-of-squares/README.md +51 -0
- data/tracks/c/exercises/gigasecond/README.md +43 -0
- data/tracks/c/exercises/grains/README.md +66 -0
- data/tracks/c/exercises/hamming/README.md +74 -0
- data/tracks/c/exercises/hello-world/README.md +53 -0
- data/tracks/c/exercises/isogram/README.md +51 -0
- data/tracks/c/exercises/largest-series-product/README.md +52 -0
- data/tracks/c/exercises/leap/README.md +65 -0
- data/tracks/c/exercises/meetup/README.md +62 -0
- data/tracks/c/exercises/nth-prime/README.md +47 -0
- data/tracks/c/exercises/nucleotide-count/README.md +65 -0
- data/tracks/c/exercises/palindrome-products/README.md +72 -0
- data/tracks/c/exercises/pangram/README.md +47 -0
- data/tracks/c/exercises/pascals-triangle/README.md +53 -0
- data/tracks/c/exercises/perfect-numbers/README.md +56 -0
- data/tracks/c/exercises/phone-number/README.md +66 -0
- data/tracks/c/exercises/raindrops/README.md +56 -0
- data/tracks/c/exercises/react/README.md +51 -0
- data/tracks/c/exercises/rna-transcription/README.md +57 -0
- data/tracks/c/exercises/robot-simulator/README.md +66 -0
- data/tracks/c/exercises/roman-numerals/README.md +81 -0
- data/tracks/c/exercises/scrabble-score/README.md +76 -0
- data/tracks/c/exercises/series/README.md +59 -0
- data/tracks/c/exercises/sieve/README.md +66 -0
- data/tracks/c/exercises/space-age/README.md +56 -0
- data/tracks/c/exercises/sum-of-multiples/README.md +50 -0
- data/tracks/c/exercises/triangle/README.md +58 -0
- data/tracks/c/exercises/word-count/README.md +51 -0
- data/tracks/ceylon/README.md +3 -3
- data/tracks/ceylon/config/exercise-readme-insert.md +1 -0
- data/tracks/{java/exercises/accumulate/.meta/readme.go.tmpl → ceylon/config/exercise_readme.go.tmpl} +0 -1
- data/tracks/ceylon/exercises/anagram/README.md +29 -0
- data/tracks/ceylon/{docs/EXERCISE_README_INSERT.md → exercises/bracket-push/README.md} +12 -0
- data/tracks/ceylon/exercises/hamming/README.md +58 -0
- data/tracks/ceylon/exercises/largest-series-product/README.md +36 -0
- data/tracks/ceylon/exercises/leap/README.md +49 -0
- data/tracks/ceylon/exercises/react/README.md +35 -0
- data/tracks/ceylon/exercises/sieve/README.md +50 -0
- data/tracks/{java/exercises/acronym/.meta/readme.go.tmpl → delphi/config/exercise_readme.go.tmpl} +0 -1
- data/tracks/delphi/exercises/allergies/README.md +58 -0
- data/tracks/delphi/exercises/bank-account/README.md +51 -0
- data/tracks/delphi/exercises/beer-song/README.md +348 -0
- data/tracks/delphi/exercises/binary-search/README.md +62 -0
- data/tracks/delphi/exercises/bob/README.md +39 -0
- data/tracks/delphi/exercises/book-store/README.md +95 -0
- data/tracks/delphi/exercises/bowling/README.md +74 -0
- data/tracks/delphi/exercises/circular-buffer/README.md +71 -0
- data/tracks/delphi/exercises/clock/README.md +34 -0
- data/tracks/delphi/exercises/collatz-conjecture/README.md +54 -0
- data/tracks/delphi/exercises/etl/README.md +72 -0
- data/tracks/delphi/exercises/grains/README.md +55 -0
- data/tracks/delphi/exercises/hamming/README.md +63 -0
- data/tracks/delphi/exercises/hello-world/README.md +42 -0
- data/tracks/delphi/exercises/leap/README.md +54 -0
- data/tracks/delphi/exercises/minesweeper/README.md +51 -0
- data/tracks/delphi/exercises/nucleotide-count/README.md +54 -0
- data/tracks/delphi/exercises/perfect-numbers/README.md +45 -0
- data/tracks/delphi/exercises/phone-number/README.md +55 -0
- data/tracks/delphi/exercises/poker/README.md +33 -0
- data/tracks/delphi/exercises/raindrops/README.md +45 -0
- data/tracks/delphi/exercises/rna-transcription/README.md +46 -0
- data/tracks/delphi/exercises/roman-numerals/README.md +70 -0
- data/tracks/delphi/exercises/saddle-points/README.md +54 -0
- data/tracks/delphi/exercises/triangle/README.md +47 -0
- data/tracks/delphi/exercises/two-fer/README.md +69 -0
- data/tracks/delphi/exercises/wordy/README.md +84 -0
- data/tracks/{java/exercises/all-your-base/.meta/readme.go.tmpl → factor/config/exercise_readme.go.tmpl} +0 -1
- data/tracks/factor/exercises/hello-world/README.md +34 -0
- data/tracks/factor/exercises/isogram/README.md +32 -0
- data/tracks/factor/exercises/leap/README.md +46 -0
- data/tracks/factor/exercises/two-fer/README.md +61 -0
- data/tracks/haskell/config/exercise_readme.go.tmpl +16 -0
- data/tracks/haskell/exercises/accumulate/README.md +89 -0
- data/tracks/haskell/exercises/acronym/README.md +69 -0
- data/tracks/haskell/exercises/all-your-base/README.md +89 -0
- data/tracks/haskell/exercises/allergies/README.md +104 -0
- data/tracks/haskell/exercises/alphametics/README.md +96 -0
- data/tracks/haskell/exercises/anagram/README.md +91 -0
- data/tracks/haskell/exercises/atbash-cipher/README.md +88 -0
- data/tracks/haskell/exercises/bank-account/README.md +102 -0
- data/tracks/haskell/exercises/beer-song/README.md +401 -0
- data/tracks/haskell/exercises/binary/README.md +89 -0
- data/tracks/haskell/exercises/binary-search-tree/README.md +133 -0
- data/tracks/haskell/exercises/bob/README.md +72 -0
- data/tracks/haskell/exercises/bowling/README.md +128 -0
- data/tracks/haskell/exercises/bracket-push/README.md +64 -0
- data/tracks/haskell/exercises/change/README.md +77 -0
- data/tracks/haskell/exercises/clock/README.md +86 -0
- data/tracks/haskell/exercises/connect/README.md +88 -0
- data/tracks/haskell/exercises/crypto-square/README.md +128 -0
- data/tracks/haskell/exercises/custom-set/README.md +94 -0
- data/tracks/haskell/exercises/difference-of-squares/README.md +73 -0
- data/tracks/haskell/exercises/dominoes/README.md +72 -0
- data/tracks/haskell/exercises/etl/README.md +105 -0
- data/tracks/haskell/exercises/food-chain/README.md +145 -0
- data/tracks/haskell/exercises/forth/README.md +98 -0
- data/tracks/haskell/exercises/gigasecond/README.md +65 -0
- data/tracks/haskell/exercises/go-counting/README.md +109 -0
- data/tracks/haskell/exercises/grade-school/README.md +111 -0
- data/tracks/haskell/exercises/grains/README.md +88 -0
- data/tracks/haskell/exercises/hamming/README.md +96 -0
- data/tracks/haskell/exercises/hello-world/README.md +83 -0
- data/tracks/haskell/exercises/hexadecimal/README.md +68 -0
- data/tracks/haskell/exercises/house/README.md +187 -0
- data/tracks/haskell/exercises/kindergarten-garden/README.md +120 -0
- data/tracks/haskell/exercises/largest-series-product/README.md +74 -0
- data/tracks/haskell/exercises/leap/README.md +100 -0
- data/tracks/haskell/exercises/lens-person/README.md +66 -0
- data/tracks/haskell/exercises/linked-list/README.md +104 -0
- data/tracks/haskell/exercises/list-ops/README.md +64 -0
- data/tracks/haskell/exercises/luhn/README.md +125 -0
- data/tracks/haskell/exercises/matrix/README.md +125 -0
- data/tracks/haskell/exercises/meetup/README.md +92 -0
- data/tracks/haskell/exercises/minesweeper/README.md +84 -0
- data/tracks/haskell/exercises/nth-prime/README.md +69 -0
- data/tracks/haskell/exercises/nucleotide-count/README.md +87 -0
- data/tracks/haskell/exercises/ocr-numbers/README.md +139 -0
- data/tracks/haskell/exercises/octal/README.md +115 -0
- data/tracks/haskell/exercises/palindrome-products/README.md +115 -0
- data/tracks/haskell/exercises/pangram/README.md +69 -0
- data/tracks/haskell/exercises/parallel-letter-frequency/README.md +76 -0
- data/tracks/haskell/exercises/pascals-triangle/README.md +75 -0
- data/tracks/haskell/exercises/phone-number/README.md +88 -0
- data/tracks/haskell/exercises/pig-latin/README.md +78 -0
- data/tracks/haskell/exercises/pov/README.md +100 -0
- data/tracks/haskell/exercises/prime-factors/README.md +90 -0
- data/tracks/haskell/exercises/pythagorean-triplet/README.md +78 -0
- data/tracks/haskell/exercises/queen-attack/README.md +105 -0
- data/tracks/haskell/exercises/raindrops/README.md +78 -0
- data/tracks/haskell/exercises/rna-transcription/README.md +79 -0
- data/tracks/haskell/exercises/robot-name/README.md +90 -0
- data/tracks/haskell/exercises/robot-simulator/README.md +105 -0
- data/tracks/haskell/exercises/roman-numerals/README.md +112 -0
- data/tracks/haskell/exercises/run-length-encoding/README.md +84 -0
- data/tracks/haskell/exercises/saddle-points/README.md +87 -0
- data/tracks/haskell/exercises/say/README.md +123 -0
- data/tracks/haskell/exercises/scrabble-score/README.md +98 -0
- data/tracks/haskell/exercises/secret-handshake/README.md +89 -0
- data/tracks/haskell/exercises/series/README.md +106 -0
- data/tracks/haskell/exercises/sgf-parsing/README.md +146 -0
- data/tracks/haskell/exercises/sieve/README.md +88 -0
- data/tracks/haskell/exercises/simple-cipher/README.md +144 -0
- data/tracks/haskell/exercises/simple-linked-list/README.md +101 -0
- data/tracks/haskell/exercises/space-age/README.md +94 -0
- data/tracks/haskell/exercises/spiral-matrix/README.md +84 -0
- data/tracks/haskell/exercises/strain/README.md +94 -0
- data/tracks/haskell/exercises/sublist/README.md +80 -0
- data/tracks/haskell/exercises/sum-of-multiples/README.md +72 -0
- data/tracks/haskell/exercises/triangle/README.md +80 -0
- data/tracks/haskell/exercises/trinary/README.md +96 -0
- data/tracks/haskell/exercises/word-count/README.md +96 -0
- data/tracks/haskell/exercises/wordy/README.md +122 -0
- data/tracks/haskell/exercises/zebra-puzzle/README.md +86 -0
- data/tracks/haskell/exercises/zipper/README.md +85 -0
- data/tracks/java/config/exercise_readme.go.tmpl +16 -0
- data/tracks/java/exercises/accumulate/README.md +0 -1
- data/tracks/java/exercises/acronym/README.md +0 -1
- data/tracks/java/exercises/all-your-base/README.md +0 -1
- data/tracks/java/exercises/allergies/README.md +0 -1
- data/tracks/java/exercises/anagram/README.md +0 -1
- data/tracks/java/exercises/atbash-cipher/README.md +0 -1
- data/tracks/java/exercises/bank-account/README.md +0 -1
- data/tracks/java/exercises/beer-song/README.md +0 -1
- data/tracks/java/exercises/binary/README.md +0 -1
- data/tracks/java/exercises/binary-search/README.md +0 -1
- data/tracks/java/exercises/binary-search-tree/README.md +0 -1
- data/tracks/java/exercises/bob/README.md +0 -1
- data/tracks/java/exercises/book-store/README.md +0 -1
- data/tracks/java/exercises/bowling/README.md +0 -1
- data/tracks/java/exercises/bracket-push/README.md +0 -1
- data/tracks/java/exercises/change/README.md +0 -1
- data/tracks/java/exercises/circular-buffer/README.md +0 -1
- data/tracks/java/exercises/clock/README.md +0 -1
- data/tracks/java/exercises/collatz-conjecture/README.md +0 -1
- data/tracks/java/exercises/complex-numbers/README.md +0 -1
- data/tracks/java/exercises/crypto-square/README.md +0 -1
- data/tracks/java/exercises/custom-set/README.md +0 -1
- data/tracks/java/exercises/diamond/README.md +0 -1
- data/tracks/java/exercises/difference-of-squares/README.md +0 -1
- data/tracks/java/exercises/etl/README.md +0 -1
- data/tracks/java/exercises/flatten-array/README.md +0 -1
- data/tracks/java/exercises/food-chain/README.md +0 -1
- data/tracks/java/exercises/gigasecond/README.md +0 -1
- data/tracks/java/exercises/grade-school/README.md +0 -1
- data/tracks/java/exercises/hamming/README.md +0 -1
- data/tracks/java/exercises/hello-world/README.md +0 -1
- data/tracks/java/exercises/hexadecimal/README.md +0 -1
- data/tracks/java/exercises/isogram/README.md +0 -1
- data/tracks/java/exercises/kindergarten-garden/README.md +0 -1
- data/tracks/java/exercises/largest-series-product/README.md +0 -1
- data/tracks/java/exercises/linked-list/README.md +0 -1
- data/tracks/java/exercises/list-ops/README.md +0 -1
- data/tracks/java/exercises/luhn/README.md +0 -1
- data/tracks/java/exercises/matrix/README.md +0 -1
- data/tracks/java/exercises/meetup/README.md +0 -1
- data/tracks/java/exercises/minesweeper/README.md +0 -1
- data/tracks/java/exercises/nth-prime/README.md +0 -1
- data/tracks/java/exercises/nucleotide-count/README.md +0 -1
- data/tracks/java/exercises/ocr-numbers/README.md +0 -1
- data/tracks/java/exercises/octal/README.md +0 -1
- data/tracks/java/exercises/palindrome-products/README.md +0 -1
- data/tracks/java/exercises/pangram/README.md +0 -1
- data/tracks/java/exercises/pascals-triangle/README.md +0 -1
- data/tracks/java/exercises/perfect-numbers/README.md +0 -1
- data/tracks/java/exercises/phone-number/README.md +0 -1
- data/tracks/java/exercises/pig-latin/README.md +0 -1
- data/tracks/java/exercises/poker/README.md +0 -1
- data/tracks/java/exercises/prime-factors/README.md +0 -1
- data/tracks/java/exercises/pythagorean-triplet/README.md +0 -1
- data/tracks/java/exercises/queen-attack/README.md +0 -1
- data/tracks/java/exercises/raindrops/README.md +0 -1
- data/tracks/java/exercises/rectangles/README.md +0 -1
- data/tracks/java/exercises/rna-transcription/README.md +0 -1
- data/tracks/java/exercises/robot-name/README.md +0 -1
- data/tracks/java/exercises/robot-simulator/README.md +0 -1
- data/tracks/java/exercises/roman-numerals/README.md +0 -1
- data/tracks/java/exercises/rotational-cipher/README.md +47 -0
- data/tracks/java/exercises/run-length-encoding/README.md +0 -1
- data/tracks/java/exercises/saddle-points/README.md +0 -1
- data/tracks/java/exercises/scrabble-score/README.md +0 -1
- data/tracks/java/exercises/secret-handshake/README.md +0 -1
- data/tracks/java/exercises/series/README.md +0 -1
- data/tracks/java/exercises/sieve/README.md +0 -1
- data/tracks/java/exercises/simple-cipher/README.md +0 -1
- data/tracks/java/exercises/simple-linked-list/README.md +0 -1
- data/tracks/java/exercises/space-age/README.md +0 -1
- data/tracks/java/exercises/spiral-matrix/README.md +0 -1
- data/tracks/java/exercises/strain/README.md +0 -1
- data/tracks/java/exercises/sublist/README.md +0 -1
- data/tracks/java/exercises/sum-of-multiples/README.md +0 -1
- data/tracks/java/exercises/transpose/README.md +0 -1
- data/tracks/java/exercises/triangle/README.md +0 -1
- data/tracks/java/exercises/trinary/README.md +0 -1
- data/tracks/java/exercises/twelve-days/README.md +0 -1
- data/tracks/java/exercises/two-fer/README.md +0 -1
- data/tracks/java/exercises/word-count/README.md +0 -1
- data/tracks/java/exercises/word-search/README.md +0 -1
- data/tracks/java/exercises/wordy/README.md +0 -1
- data/tracks/javascript/config/exercise_readme.go.tmpl +16 -0
- data/tracks/javascript/exercises/accumulate/README.md +59 -0
- data/tracks/javascript/exercises/acronym/README.md +39 -0
- data/tracks/javascript/exercises/all-your-base/README.md +59 -0
- data/tracks/javascript/exercises/allergies/README.md +61 -0
- data/tracks/javascript/exercises/alphametics/README.md +59 -0
- data/tracks/javascript/exercises/anagram/README.md +37 -0
- data/tracks/javascript/exercises/atbash-cipher/README.md +58 -0
- data/tracks/javascript/exercises/beer-song/README.md +351 -0
- data/tracks/javascript/exercises/binary/README.md +59 -0
- data/tracks/javascript/exercises/binary-search/README.md +65 -0
- data/tracks/javascript/exercises/binary-search-tree/README.md +84 -0
- data/tracks/javascript/exercises/bob/README.md +42 -0
- data/tracks/javascript/exercises/bowling/README.md +77 -0
- data/tracks/javascript/exercises/bracket-push/README.md +34 -0
- data/tracks/javascript/exercises/circular-buffer/README.md +74 -0
- data/tracks/javascript/exercises/clock/README.md +37 -0
- data/tracks/javascript/exercises/crypto-square/README.md +98 -0
- data/tracks/javascript/exercises/custom-set/README.md +35 -0
- data/tracks/javascript/exercises/diamond/README.md +83 -0
- data/tracks/javascript/exercises/difference-of-squares/README.md +43 -0
- data/tracks/javascript/exercises/etl/README.md +75 -0
- data/tracks/javascript/exercises/flatten-array/README.md +42 -0
- data/tracks/javascript/exercises/food-chain/README.md +94 -0
- data/tracks/javascript/exercises/gigasecond/README.md +35 -0
- data/tracks/javascript/exercises/grade-school/README.md +66 -0
- data/tracks/javascript/exercises/grains/README.md +58 -0
- data/tracks/javascript/exercises/hamming/README.md +66 -0
- data/tracks/javascript/exercises/hello-world/README.md +132 -0
- data/tracks/javascript/exercises/hexadecimal/README.md +38 -0
- data/tracks/javascript/exercises/isogram/README.md +43 -0
- data/tracks/javascript/exercises/kindergarten-garden/README.md +90 -0
- data/tracks/javascript/exercises/largest-series-product/README.md +44 -0
- data/tracks/javascript/exercises/leap/README.md +57 -0
- data/tracks/javascript/exercises/linked-list/README.md +58 -0
- data/tracks/javascript/exercises/list-ops/README.md +34 -0
- data/tracks/javascript/exercises/luhn/README.md +95 -0
- data/tracks/javascript/exercises/matrix/README.md +69 -0
- data/tracks/javascript/exercises/meetup/README.md +54 -0
- data/tracks/javascript/exercises/minesweeper/README.md +54 -0
- data/tracks/javascript/exercises/nth-prime/README.md +39 -0
- data/tracks/javascript/exercises/nucleotide-count/README.md +57 -0
- data/tracks/javascript/exercises/ocr-numbers/README.md +109 -0
- data/tracks/javascript/exercises/octal/README.md +73 -0
- data/tracks/javascript/exercises/palindrome-products/README.md +64 -0
- data/tracks/javascript/exercises/pangram/README.md +39 -0
- data/tracks/javascript/exercises/pascals-triangle/README.md +45 -0
- data/tracks/javascript/exercises/perfect-numbers/README.md +48 -0
- data/tracks/javascript/exercises/phone-number/README.md +58 -0
- data/tracks/javascript/exercises/pig-latin/README.md +48 -0
- data/tracks/javascript/exercises/point-mutations/README.md +65 -0
- data/tracks/javascript/exercises/prime-factors/README.md +60 -0
- data/tracks/javascript/exercises/proverb/README.md +42 -0
- data/tracks/javascript/exercises/pythagorean-triplet/README.md +48 -0
- data/tracks/javascript/exercises/queen-attack/README.md +57 -0
- data/tracks/javascript/exercises/raindrops/README.md +48 -0
- data/tracks/javascript/exercises/rna-transcription/README.md +49 -0
- data/tracks/javascript/exercises/robot-name/README.md +46 -0
- data/tracks/javascript/exercises/robot-simulator/README.md +58 -0
- data/tracks/javascript/exercises/roman-numerals/README.md +73 -0
- data/tracks/javascript/exercises/run-length-encoding/README.md +54 -0
- data/tracks/javascript/exercises/saddle-points/README.md +57 -0
- data/tracks/javascript/exercises/say/README.md +93 -0
- data/tracks/javascript/exercises/scrabble-score/README.md +68 -0
- data/tracks/javascript/exercises/secret-handshake/README.md +59 -0
- data/tracks/javascript/exercises/series/README.md +51 -0
- data/tracks/javascript/exercises/sieve/README.md +58 -0
- data/tracks/javascript/exercises/simple-cipher/README.md +114 -0
- data/tracks/javascript/exercises/simple-linked-list/README.md +52 -0
- data/tracks/javascript/exercises/space-age/README.md +48 -0
- data/tracks/javascript/exercises/strain/README.md +64 -0
- data/tracks/javascript/exercises/sum-of-multiples/README.md +42 -0
- data/tracks/javascript/exercises/triangle/README.md +50 -0
- data/tracks/javascript/exercises/trinary/README.md +52 -0
- data/tracks/javascript/exercises/two-bucket/README.md +60 -0
- data/tracks/javascript/exercises/word-count/README.md +43 -0
- data/tracks/javascript/exercises/wordy/README.md +87 -0
- data/tracks/lua/config/exercise_readme.go.tmpl +16 -0
- data/tracks/lua/exercises/acronym/README.md +25 -0
- data/tracks/lua/exercises/all-your-base/README.md +45 -0
- data/tracks/lua/exercises/allergies/README.md +47 -0
- data/tracks/lua/exercises/alphametics/README.md +45 -0
- data/tracks/lua/exercises/anagram/README.md +23 -0
- data/tracks/lua/exercises/atbash-cipher/README.md +44 -0
- data/tracks/lua/exercises/bank-account/README.md +40 -0
- data/tracks/lua/exercises/beer-song/README.md +337 -0
- data/tracks/lua/exercises/binary/README.md +45 -0
- data/tracks/lua/exercises/binary-search/README.md +51 -0
- data/tracks/lua/exercises/binary-search-tree/README.md +70 -0
- data/tracks/lua/exercises/bob/README.md +28 -0
- data/tracks/lua/exercises/bowling/README.md +63 -0
- data/tracks/lua/exercises/bracket-push/README.md +20 -0
- data/tracks/lua/exercises/change/README.md +33 -0
- data/tracks/lua/exercises/circular-buffer/README.md +60 -0
- data/tracks/lua/exercises/clock/README.md +23 -0
- data/tracks/lua/exercises/crypto-square/README.md +84 -0
- data/tracks/lua/exercises/custom-set/README.md +21 -0
- data/tracks/lua/exercises/diamond/README.md +69 -0
- data/tracks/lua/exercises/difference-of-squares/README.md +29 -0
- data/tracks/lua/exercises/etl/README.md +61 -0
- data/tracks/lua/exercises/flatten-array/README.md +28 -0
- data/tracks/lua/exercises/food-chain/README.md +80 -0
- data/tracks/lua/exercises/gigasecond/README.md +21 -0
- data/tracks/lua/exercises/grade-school/README.md +52 -0
- data/tracks/lua/exercises/grains/README.md +44 -0
- data/tracks/lua/exercises/hamming/README.md +52 -0
- data/tracks/lua/exercises/hello-world/README.md +31 -0
- data/tracks/lua/exercises/house/README.md +123 -0
- data/tracks/lua/exercises/isogram/README.md +29 -0
- data/tracks/lua/exercises/kindergarten-garden/README.md +76 -0
- data/tracks/lua/exercises/largest-series-product/README.md +30 -0
- data/tracks/lua/exercises/leap/README.md +43 -0
- data/tracks/lua/exercises/linked-list/README.md +44 -0
- data/tracks/lua/exercises/list-ops/README.md +20 -0
- data/tracks/lua/exercises/luhn/README.md +81 -0
- data/tracks/lua/exercises/matrix/README.md +55 -0
- data/tracks/lua/exercises/meetup/README.md +40 -0
- data/tracks/lua/exercises/minesweeper/README.md +40 -0
- data/tracks/lua/exercises/nth-prime/README.md +25 -0
- data/tracks/lua/exercises/nucleotide-count/README.md +43 -0
- data/tracks/lua/exercises/ocr-numbers/README.md +95 -0
- data/tracks/lua/exercises/octal/README.md +59 -0
- data/tracks/lua/exercises/pangram/README.md +25 -0
- data/tracks/lua/exercises/pascals-triangle/README.md +31 -0
- data/tracks/lua/exercises/perfect-numbers/README.md +34 -0
- data/tracks/lua/exercises/phone-number/README.md +44 -0
- data/tracks/lua/exercises/pig-latin/README.md +34 -0
- data/tracks/lua/exercises/pov/README.md +56 -0
- data/tracks/lua/exercises/prime-factors/README.md +46 -0
- data/tracks/lua/exercises/protein-translation/README.md +59 -0
- data/tracks/lua/exercises/pythagorean-triplet/README.md +34 -0
- data/tracks/lua/exercises/rail-fence-cipher/README.md +70 -0
- data/tracks/lua/exercises/raindrops/README.md +34 -0
- data/tracks/lua/exercises/rectangles/README.md +77 -0
- data/tracks/lua/exercises/rna-transcription/README.md +35 -0
- data/tracks/lua/exercises/robot-name/README.md +32 -0
- data/tracks/lua/exercises/robot-simulator/README.md +44 -0
- data/tracks/lua/exercises/roman-numerals/README.md +59 -0
- data/tracks/lua/exercises/run-length-encoding/README.md +40 -0
- data/tracks/lua/exercises/say/README.md +79 -0
- data/tracks/lua/exercises/scrabble-score/README.md +54 -0
- data/tracks/lua/exercises/secret-handshake/README.md +45 -0
- data/tracks/lua/exercises/series/README.md +37 -0
- data/tracks/lua/exercises/sieve/README.md +44 -0
- data/tracks/lua/exercises/space-age/README.md +34 -0
- data/tracks/lua/exercises/sublist/README.md +31 -0
- data/tracks/lua/exercises/sum-of-multiples/README.md +28 -0
- data/tracks/lua/exercises/tournament/README.md +78 -0
- data/tracks/lua/exercises/transpose/README.md +75 -0
- data/tracks/lua/exercises/triangle/README.md +36 -0
- data/tracks/lua/exercises/variable-length-quantity/README.md +49 -0
- data/tracks/lua/exercises/word-count/README.md +29 -0
- data/tracks/lua/exercises/word-search/README.md +40 -0
- data/tracks/mips/config/exercise_readme.go.tmpl +16 -0
- data/tracks/mips/exercises/atbash-cipher/README.md +34 -0
- data/tracks/mips/exercises/binary/README.md +35 -0
- data/tracks/mips/exercises/difference-of-squares/README.md +19 -0
- data/tracks/mips/exercises/hamming/README.md +42 -0
- data/tracks/mips/exercises/hexadecimal/README.md +14 -0
- data/tracks/mips/exercises/isogram/README.md +19 -0
- data/tracks/mips/exercises/leap/README.md +33 -0
- data/tracks/mips/exercises/nth-prime/README.md +15 -0
- data/tracks/mips/exercises/octal/README.md +49 -0
- data/tracks/mips/exercises/raindrops/README.md +24 -0
- data/tracks/mips/exercises/rna-transcription/README.md +25 -0
- data/tracks/mips/exercises/scrabble-score/README.md +44 -0
- data/tracks/mips/exercises/triangle/README.md +26 -0
- data/tracks/mips/exercises/trinary/README.md +28 -0
- data/tracks/purescript/config/exercise_readme.go.tmpl +16 -0
- data/tracks/purescript/exercises/accumulate/README.md +35 -0
- data/tracks/purescript/exercises/acronym/README.md +15 -0
- data/tracks/purescript/exercises/all-your-base/README.md +35 -0
- data/tracks/purescript/exercises/allergies/README.md +37 -0
- data/tracks/purescript/exercises/atbash-cipher/README.md +34 -0
- data/tracks/purescript/exercises/binary-search/README.md +41 -0
- data/tracks/purescript/exercises/bob/README.md +18 -0
- data/tracks/purescript/exercises/bracket-push/README.md +10 -0
- data/tracks/purescript/exercises/crypto-square/README.md +74 -0
- data/tracks/purescript/exercises/diamond/README.md +59 -0
- data/tracks/purescript/exercises/difference-of-squares/README.md +19 -0
- data/tracks/purescript/exercises/etl/README.md +51 -0
- data/tracks/purescript/exercises/hamming/README.md +42 -0
- data/tracks/purescript/exercises/hello-world/README.md +21 -0
- data/tracks/purescript/exercises/isogram/README.md +19 -0
- data/tracks/purescript/exercises/largest-series-product/README.md +20 -0
- data/tracks/purescript/exercises/leap/README.md +33 -0
- data/tracks/purescript/exercises/meetup/README.md +30 -0
- data/tracks/purescript/exercises/pangram/README.md +15 -0
- data/tracks/purescript/exercises/pascals-triangle/README.md +21 -0
- data/tracks/purescript/exercises/raindrops/README.md +24 -0
- data/tracks/purescript/exercises/scrabble-score/README.md +44 -0
- data/tracks/purescript/exercises/triangle/README.md +26 -0
- data/tracks/purescript/exercises/word-count/README.md +19 -0
- data/tracks/r/config/exercise_readme.go.tmpl +16 -0
- data/tracks/r/exercises/anagram/README.md +23 -0
- data/tracks/r/exercises/beer-song/README.md +337 -0
- data/tracks/r/exercises/bob/README.md +28 -0
- data/tracks/r/exercises/difference-of-squares/README.md +29 -0
- data/tracks/r/exercises/grains/README.md +44 -0
- data/tracks/r/exercises/hamming/README.md +52 -0
- data/tracks/r/exercises/hello-world/README.md +31 -0
- data/tracks/r/exercises/isogram/README.md +29 -0
- data/tracks/r/exercises/largest-series-product/README.md +30 -0
- data/tracks/r/exercises/leap/README.md +43 -0
- data/tracks/r/exercises/luhn/README.md +81 -0
- data/tracks/r/exercises/pascals-triangle/README.md +31 -0
- data/tracks/r/exercises/perfect-numbers/README.md +34 -0
- data/tracks/r/exercises/phone-number/README.md +44 -0
- data/tracks/r/exercises/prime-factors/README.md +46 -0
- data/tracks/r/exercises/raindrops/README.md +34 -0
- data/tracks/r/exercises/rna-transcription/README.md +35 -0
- data/tracks/r/exercises/rotational-cipher/README.md +46 -0
- data/tracks/r/exercises/scrabble-score/README.md +54 -0
- data/tracks/r/exercises/secret-handshake/README.md +45 -0
- data/tracks/r/exercises/sieve/README.md +44 -0
- data/tracks/r/exercises/space-age/README.md +34 -0
- data/tracks/r/exercises/sum-of-multiples/README.md +28 -0
- data/tracks/r/exercises/tournament/README.md +78 -0
- data/tracks/r/exercises/word-count/README.md +29 -0
- data/tracks/rust/{docs/EXERCISE_README_INSERT.md → config/exercise-readme-insert.md} +1 -1
- data/tracks/rust/config/exercise_readme.go.tmpl +16 -0
- data/tracks/rust/exercises/acronym/README.md +47 -0
- data/tracks/rust/exercises/all-your-base/README.md +67 -0
- data/tracks/rust/exercises/allergies/README.md +69 -0
- data/tracks/rust/exercises/alphametics/README.md +67 -0
- data/tracks/rust/exercises/anagram/README.md +45 -0
- data/tracks/rust/exercises/atbash-cipher/README.md +66 -0
- data/tracks/rust/exercises/beer-song/README.md +359 -0
- data/tracks/rust/exercises/bob/README.md +50 -0
- data/tracks/rust/exercises/bowling/README.md +85 -0
- data/tracks/rust/exercises/bracket-push/README.md +50 -0
- data/tracks/rust/exercises/circular-buffer/README.md +82 -0
- data/tracks/rust/exercises/custom-set/README.md +43 -0
- data/tracks/rust/exercises/difference-of-squares/README.md +51 -0
- data/tracks/rust/exercises/dominoes/README.md +50 -0
- data/tracks/rust/exercises/etl/README.md +83 -0
- data/tracks/rust/exercises/forth/README.md +61 -0
- data/tracks/rust/exercises/gigasecond/Cargo.lock +3 -3
- data/tracks/rust/exercises/gigasecond/Cargo.toml +1 -1
- data/tracks/rust/exercises/gigasecond/README.md +43 -0
- data/tracks/rust/exercises/gigasecond/example.rs +1 -1
- data/tracks/rust/exercises/gigasecond/src/lib.rs +2 -2
- data/tracks/rust/exercises/gigasecond/tests/gigasecond.rs +10 -10
- data/tracks/rust/exercises/grade-school/README.md +74 -0
- data/tracks/rust/exercises/grains/README.md +66 -0
- data/tracks/rust/exercises/hamming/README.md +74 -0
- data/tracks/rust/exercises/hello-world/README.md +53 -0
- data/tracks/rust/exercises/hexadecimal/README.md +46 -0
- data/tracks/rust/exercises/largest-series-product/README.md +60 -0
- data/tracks/rust/exercises/leap/README.md +65 -0
- data/tracks/rust/exercises/luhn/README.md +103 -0
- data/tracks/rust/exercises/luhn-from/README.md +49 -0
- data/tracks/rust/exercises/luhn-trait/README.md +57 -0
- data/tracks/rust/exercises/minesweeper/README.md +62 -0
- data/tracks/rust/exercises/nucleotide-codons/README.md +54 -0
- data/tracks/rust/exercises/nucleotide-count/README.md +65 -0
- data/tracks/rust/exercises/ocr-numbers/README.md +117 -0
- data/tracks/rust/exercises/pangram/README.md +47 -0
- data/tracks/rust/exercises/parallel-letter-frequency/README.md +77 -0
- data/tracks/rust/exercises/pascals-triangle/README.md +53 -0
- data/tracks/rust/exercises/phone-number/README.md +66 -0
- data/tracks/rust/exercises/protein-translation/README.md +81 -0
- data/tracks/rust/exercises/queen-attack/README.md +65 -0
- data/tracks/rust/exercises/raindrops/README.md +56 -0
- data/tracks/rust/exercises/react/README.md +51 -0
- data/tracks/rust/exercises/rectangles/README.md +99 -0
- data/tracks/rust/exercises/rna-transcription/README.md +57 -0
- data/tracks/rust/exercises/robot-name/README.md +54 -0
- data/tracks/rust/exercises/robot-simulator/README.md +66 -0
- data/tracks/rust/exercises/roman-numerals/README.md +81 -0
- data/tracks/rust/exercises/rotational-cipher/README.md +68 -0
- data/tracks/rust/exercises/run-length-encoding/README.md +62 -0
- data/tracks/rust/exercises/scrabble-score/README.md +76 -0
- data/tracks/rust/exercises/sieve/README.md +66 -0
- data/tracks/rust/exercises/space-age/README.md +64 -0
- data/tracks/rust/exercises/sublist/README.md +53 -0
- data/tracks/rust/exercises/sum-of-multiples/README.md +50 -0
- data/tracks/rust/exercises/tournament/README.md +100 -0
- data/tracks/rust/exercises/triangle/README.md +71 -0
- data/tracks/rust/exercises/variable-length-quantity/README.md +71 -0
- data/tracks/rust/exercises/word-count/README.md +51 -0
- data/tracks/rust/exercises/wordy/README.md +95 -0
- data/tracks/vimscript/config/exercise_readme.go.tmpl +16 -0
- data/tracks/vimscript/exercises/allergies/README.md +46 -0
- data/tracks/vimscript/exercises/anagram/README.md +22 -0
- data/tracks/vimscript/exercises/atbash-cipher/README.md +43 -0
- data/tracks/vimscript/exercises/beer-song/README.md +336 -0
- data/tracks/vimscript/exercises/bob/README.md +27 -0
- data/tracks/vimscript/exercises/difference-of-squares/README.md +28 -0
- data/tracks/vimscript/exercises/etl/README.md +60 -0
- data/tracks/vimscript/exercises/hamming/README.md +51 -0
- data/tracks/vimscript/exercises/hello-world/README.md +30 -0
- data/tracks/vimscript/exercises/largest-series-product/README.md +29 -0
- data/tracks/vimscript/exercises/leap/README.md +42 -0
- data/tracks/vimscript/exercises/nucleotide-count/README.md +42 -0
- data/tracks/vimscript/exercises/pangram/README.md +24 -0
- data/tracks/vimscript/exercises/phone-number/README.md +43 -0
- data/tracks/vimscript/exercises/raindrops/README.md +33 -0
- data/tracks/vimscript/exercises/rna-transcription/README.md +34 -0
- data/tracks/vimscript/exercises/roman-numerals/README.md +58 -0
- data/tracks/vimscript/exercises/scrabble-score/README.md +53 -0
- data/tracks/vimscript/exercises/triangle/README.md +35 -0
- data/tracks/vimscript/exercises/word-count/README.md +28 -0
- metadata +466 -86
- data/tracks/java/exercises/anagram/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/atbash-cipher/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/bank-account/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/beer-song/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/binary/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/binary-search/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/binary-search-tree/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/bob/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/book-store/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/bowling/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/bracket-push/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/change/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/circular-buffer/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/clock/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/collatz-conjecture/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/complex-numbers/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/crypto-square/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/custom-set/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/diamond/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/difference-of-squares/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/etl/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/flatten-array/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/food-chain/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/gigasecond/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/grade-school/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/hamming/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/hello-world/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/hexadecimal/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/isogram/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/kindergarten-garden/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/largest-series-product/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/linked-list/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/list-ops/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/luhn/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/matrix/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/meetup/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/minesweeper/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/nth-prime/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/nucleotide-count/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/ocr-numbers/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/octal/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/palindrome-products/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/pangram/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/pascals-triangle/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/perfect-numbers/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/phone-number/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/pig-latin/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/poker/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/prime-factors/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/pythagorean-triplet/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/queen-attack/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/raindrops/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/rectangles/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/rna-transcription/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/robot-name/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/robot-simulator/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/roman-numerals/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/run-length-encoding/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/saddle-points/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/scrabble-score/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/secret-handshake/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/series/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/sieve/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/simple-cipher/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/simple-linked-list/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/space-age/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/spiral-matrix/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/strain/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/sublist/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/sum-of-multiples/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/transpose/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/triangle/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/trinary/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/twelve-days/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/two-fer/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/word-count/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/word-search/.meta/readme.go.tmpl +0 -17
- data/tracks/java/exercises/wordy/.meta/readme.go.tmpl +0 -17
@@ -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
|
+
## Rust Installation
|
324
|
+
|
325
|
+
Refer to the [exercism help page][help-page] for Rust installation and learning
|
326
|
+
resources.
|
327
|
+
|
328
|
+
## Writing the Code
|
329
|
+
|
330
|
+
Execute the tests with:
|
331
|
+
|
332
|
+
```bash
|
333
|
+
$ cargo test
|
334
|
+
```
|
335
|
+
|
336
|
+
All but the first test have been ignored. After you get the first test to
|
337
|
+
pass, remove the ignore flag (`#[ignore]`) from the next test and get the tests
|
338
|
+
to pass again. The test file is located in the `tests` directory. You can
|
339
|
+
also remove the ignore flag from all the tests to get them to run all at once
|
340
|
+
if you wish.
|
341
|
+
|
342
|
+
Make sure to read the [Crates and Modules](https://doc.rust-lang.org/stable/book/crates-and-modules.html) chapter if you
|
343
|
+
haven't already, it will help you with organizing your files.
|
344
|
+
|
345
|
+
## Feedback, Issues, Pull Requests
|
346
|
+
|
347
|
+
The [exercism/rust](https://github.com/exercism/rust) repository on GitHub is the home for all of the Rust exercises. If you have feedback about an exercise, or want to help implement new exercises, head over there and create an issue. Members of the [rust track team](https://github.com/orgs/exercism/teams/rust) are happy to help!
|
348
|
+
|
349
|
+
If you want to know more about Exercism, take a look at the [contribution guide](https://github.com/exercism/docs/blob/master/contributing-to-language-tracks/README.md).
|
350
|
+
|
351
|
+
[help-page]: http://exercism.io/languages/rust
|
352
|
+
[crates-and-modules]: http://doc.rust-lang.org/stable/book/crates-and-modules.html
|
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,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
|
+
## Rust Installation
|
15
|
+
|
16
|
+
Refer to the [exercism help page][help-page] for Rust installation and learning
|
17
|
+
resources.
|
18
|
+
|
19
|
+
## Writing the Code
|
20
|
+
|
21
|
+
Execute the tests with:
|
22
|
+
|
23
|
+
```bash
|
24
|
+
$ cargo test
|
25
|
+
```
|
26
|
+
|
27
|
+
All but the first test have been ignored. After you get the first test to
|
28
|
+
pass, remove the ignore flag (`#[ignore]`) from the next test and get the tests
|
29
|
+
to pass again. The test file is located in the `tests` directory. You can
|
30
|
+
also remove the ignore flag from all the tests to get them to run all at once
|
31
|
+
if you wish.
|
32
|
+
|
33
|
+
Make sure to read the [Crates and Modules](https://doc.rust-lang.org/stable/book/crates-and-modules.html) chapter if you
|
34
|
+
haven't already, it will help you with organizing your files.
|
35
|
+
|
36
|
+
## Feedback, Issues, Pull Requests
|
37
|
+
|
38
|
+
The [exercism/rust](https://github.com/exercism/rust) repository on GitHub is the home for all of the Rust exercises. If you have feedback about an exercise, or want to help implement new exercises, head over there and create an issue. Members of the [rust track team](https://github.com/orgs/exercism/teams/rust) are happy to help!
|
39
|
+
|
40
|
+
If you want to know more about Exercism, take a look at the [contribution guide](https://github.com/exercism/docs/blob/master/contributing-to-language-tracks/README.md).
|
41
|
+
|
42
|
+
[help-page]: http://exercism.io/languages/rust
|
43
|
+
[crates-and-modules]: http://doc.rust-lang.org/stable/book/crates-and-modules.html
|
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,85 @@
|
|
1
|
+
# Bowling
|
2
|
+
|
3
|
+
Score a bowling game.
|
4
|
+
|
5
|
+
Bowling is game where players roll a heavy ball to knock down pins
|
6
|
+
arranged in a triangle. Write code to keep track of the score
|
7
|
+
of a game of bowling.
|
8
|
+
|
9
|
+
## Scoring Bowling
|
10
|
+
|
11
|
+
The game consists of 10 frames. A frame is composed of one or two ball throws with 10 pins standing at frame initialization. There are three cases for the tabulation of a frame.
|
12
|
+
|
13
|
+
* An open frame is where a score of less than 10 is recorded for the frame. In this case the score for the frame is the number of pins knocked down.
|
14
|
+
|
15
|
+
* A spare is where all ten pins are knocked down after the second throw. The total value of a spare is 10 plus the number of pins knocked down in their next throw.
|
16
|
+
|
17
|
+
* A strike is where all ten pins are knocked down after the first throw. The total value of a strike is 10 plus the number of pins knocked down in their next two throws. If a strike is immediately followed by a second strike, then we can not total the value of first strike until they throw the ball one more time.
|
18
|
+
|
19
|
+
Here is a three frame example:
|
20
|
+
|
21
|
+
| Frame 1 | Frame 2 | Frame 3 |
|
22
|
+
| :-------------: |:-------------:| :---------------------:|
|
23
|
+
| X (strike) | 5/ (spare) | 9 0 (open frame) |
|
24
|
+
|
25
|
+
Frame 1 is (10 + 5 + 5) = 20
|
26
|
+
|
27
|
+
Frame 2 is (5 + 5 + 9) = 19
|
28
|
+
|
29
|
+
Frame 3 is (9 + 0) = 9
|
30
|
+
|
31
|
+
This means the current running total is 48.
|
32
|
+
|
33
|
+
The tenth frame in the game is a special case. If someone throws a strike or a spare then they get a fill ball. Fill balls exist to calculate the total of the 10th frame. Scoring a strike or spare on the fill ball does not give the player more fill balls. The total value of the 10th frame is the total number of pins knocked down.
|
34
|
+
|
35
|
+
For a tenth frame of X1/ (strike and a spare), the total value is 20.
|
36
|
+
|
37
|
+
For a tenth frame of XXX (three strikes), the total value is 30.
|
38
|
+
|
39
|
+
## Requirements
|
40
|
+
|
41
|
+
Write code to keep track of the score of a game of bowling. It should
|
42
|
+
support two operations:
|
43
|
+
|
44
|
+
* `roll(pins : int)` is called each time the player rolls a ball. The
|
45
|
+
argument is the number of pins knocked down.
|
46
|
+
* `score() : int` is called only at the very end of the game. It
|
47
|
+
returns the total score for that game.
|
48
|
+
|
49
|
+
## Rust Installation
|
50
|
+
|
51
|
+
Refer to the [exercism help page][help-page] for Rust installation and learning
|
52
|
+
resources.
|
53
|
+
|
54
|
+
## Writing the Code
|
55
|
+
|
56
|
+
Execute the tests with:
|
57
|
+
|
58
|
+
```bash
|
59
|
+
$ cargo test
|
60
|
+
```
|
61
|
+
|
62
|
+
All but the first test have been ignored. After you get the first test to
|
63
|
+
pass, remove the ignore flag (`#[ignore]`) from the next test and get the tests
|
64
|
+
to pass again. The test file is located in the `tests` directory. You can
|
65
|
+
also remove the ignore flag from all the tests to get them to run all at once
|
66
|
+
if you wish.
|
67
|
+
|
68
|
+
Make sure to read the [Crates and Modules](https://doc.rust-lang.org/stable/book/crates-and-modules.html) chapter if you
|
69
|
+
haven't already, it will help you with organizing your files.
|
70
|
+
|
71
|
+
## Feedback, Issues, Pull Requests
|
72
|
+
|
73
|
+
The [exercism/rust](https://github.com/exercism/rust) repository on GitHub is the home for all of the Rust exercises. If you have feedback about an exercise, or want to help implement new exercises, head over there and create an issue. Members of the [rust track team](https://github.com/orgs/exercism/teams/rust) are happy to help!
|
74
|
+
|
75
|
+
If you want to know more about Exercism, take a look at the [contribution guide](https://github.com/exercism/docs/blob/master/contributing-to-language-tracks/README.md).
|
76
|
+
|
77
|
+
[help-page]: http://exercism.io/languages/rust
|
78
|
+
[crates-and-modules]: http://doc.rust-lang.org/stable/book/crates-and-modules.html
|
79
|
+
|
80
|
+
## Source
|
81
|
+
|
82
|
+
The Bowling Game Kata at but UncleBob [http://butunclebob.com/ArticleS.UncleBob.TheBowlingGameKata](http://butunclebob.com/ArticleS.UncleBob.TheBowlingGameKata)
|
83
|
+
|
84
|
+
## Submitting Incomplete Solutions
|
85
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
@@ -0,0 +1,50 @@
|
|
1
|
+
# Bracket Push
|
2
|
+
|
3
|
+
Given a string containing brackets `[]`, braces `{}` and parentheses `()`,
|
4
|
+
verify that all the pairs are matched and nested correctly.
|
5
|
+
|
6
|
+
# Bracket Push in Rust
|
7
|
+
|
8
|
+
Reading about these Rust topics may help you implement a solution.
|
9
|
+
|
10
|
+
- Lifetimes and Structs: https://doc.rust-lang.org/book/lifetimes.html#impl-blocks
|
11
|
+
- From trait: https://doc.rust-lang.org/std/convert/trait.From.html
|
12
|
+
|
13
|
+
|
14
|
+
## Rust Installation
|
15
|
+
|
16
|
+
Refer to the [exercism help page][help-page] for Rust installation and learning
|
17
|
+
resources.
|
18
|
+
|
19
|
+
## Writing the Code
|
20
|
+
|
21
|
+
Execute the tests with:
|
22
|
+
|
23
|
+
```bash
|
24
|
+
$ cargo test
|
25
|
+
```
|
26
|
+
|
27
|
+
All but the first test have been ignored. After you get the first test to
|
28
|
+
pass, remove the ignore flag (`#[ignore]`) from the next test and get the tests
|
29
|
+
to pass again. The test file is located in the `tests` directory. You can
|
30
|
+
also remove the ignore flag from all the tests to get them to run all at once
|
31
|
+
if you wish.
|
32
|
+
|
33
|
+
Make sure to read the [Crates and Modules](https://doc.rust-lang.org/stable/book/crates-and-modules.html) chapter if you
|
34
|
+
haven't already, it will help you with organizing your files.
|
35
|
+
|
36
|
+
## Feedback, Issues, Pull Requests
|
37
|
+
|
38
|
+
The [exercism/rust](https://github.com/exercism/rust) repository on GitHub is the home for all of the Rust exercises. If you have feedback about an exercise, or want to help implement new exercises, head over there and create an issue. Members of the [rust track team](https://github.com/orgs/exercism/teams/rust) are happy to help!
|
39
|
+
|
40
|
+
If you want to know more about Exercism, take a look at the [contribution guide](https://github.com/exercism/docs/blob/master/contributing-to-language-tracks/README.md).
|
41
|
+
|
42
|
+
[help-page]: http://exercism.io/languages/rust
|
43
|
+
[crates-and-modules]: http://doc.rust-lang.org/stable/book/crates-and-modules.html
|
44
|
+
|
45
|
+
## Source
|
46
|
+
|
47
|
+
Ginna Baker
|
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,82 @@
|
|
1
|
+
# Circular Buffer
|
2
|
+
|
3
|
+
A circular buffer, cyclic buffer or ring buffer is a data structure that
|
4
|
+
uses a single, fixed-size buffer as if it were connected end-to-end.
|
5
|
+
|
6
|
+
A circular buffer first starts empty and of some predefined length. For
|
7
|
+
example, this is a 7-element buffer:
|
8
|
+
|
9
|
+
[ ][ ][ ][ ][ ][ ][ ]
|
10
|
+
|
11
|
+
Assume that a 1 is written into the middle of the buffer (exact starting
|
12
|
+
location does not matter in a circular buffer):
|
13
|
+
|
14
|
+
[ ][ ][ ][1][ ][ ][ ]
|
15
|
+
|
16
|
+
Then assume that two more elements are added — 2 & 3 — which get
|
17
|
+
appended after the 1:
|
18
|
+
|
19
|
+
[ ][ ][ ][1][2][3][ ]
|
20
|
+
|
21
|
+
If two elements are then removed from the buffer, the oldest values
|
22
|
+
inside the buffer are removed. The two elements removed, in this case,
|
23
|
+
are 1 & 2, leaving the buffer with just a 3:
|
24
|
+
|
25
|
+
[ ][ ][ ][ ][ ][3][ ]
|
26
|
+
|
27
|
+
If the buffer has 7 elements then it is completely full:
|
28
|
+
|
29
|
+
[6][7][8][9][3][4][5]
|
30
|
+
|
31
|
+
When the buffer is full an error will be raised, alerting the client
|
32
|
+
that further writes are blocked until a slot becomes free.
|
33
|
+
|
34
|
+
The client can opt to overwrite the oldest data with a forced write. In
|
35
|
+
this case, two more elements — A & B — are added and they overwrite the
|
36
|
+
3 & 4:
|
37
|
+
|
38
|
+
[6][7][8][9][A][B][5]
|
39
|
+
|
40
|
+
Finally, if two elements are now removed then what would be returned is
|
41
|
+
not 3 & 4 but 5 & 6 because A & B overwrote the 3 & the 4 yielding the
|
42
|
+
buffer with:
|
43
|
+
|
44
|
+
[ ][7][8][9][A][B][ ]
|
45
|
+
|
46
|
+
## Rust Installation
|
47
|
+
|
48
|
+
Refer to the [exercism help page][help-page] for Rust installation and learning
|
49
|
+
resources.
|
50
|
+
|
51
|
+
## Writing the Code
|
52
|
+
|
53
|
+
Execute the tests with:
|
54
|
+
|
55
|
+
```bash
|
56
|
+
$ cargo test
|
57
|
+
```
|
58
|
+
|
59
|
+
All but the first test have been ignored. After you get the first test to
|
60
|
+
pass, remove the ignore flag (`#[ignore]`) from the next test and get the tests
|
61
|
+
to pass again. The test file is located in the `tests` directory. You can
|
62
|
+
also remove the ignore flag from all the tests to get them to run all at once
|
63
|
+
if you wish.
|
64
|
+
|
65
|
+
Make sure to read the [Crates and Modules](https://doc.rust-lang.org/stable/book/crates-and-modules.html) chapter if you
|
66
|
+
haven't already, it will help you with organizing your files.
|
67
|
+
|
68
|
+
## Feedback, Issues, Pull Requests
|
69
|
+
|
70
|
+
The [exercism/rust](https://github.com/exercism/rust) repository on GitHub is the home for all of the Rust exercises. If you have feedback about an exercise, or want to help implement new exercises, head over there and create an issue. Members of the [rust track team](https://github.com/orgs/exercism/teams/rust) are happy to help!
|
71
|
+
|
72
|
+
If you want to know more about Exercism, take a look at the [contribution guide](https://github.com/exercism/docs/blob/master/contributing-to-language-tracks/README.md).
|
73
|
+
|
74
|
+
[help-page]: http://exercism.io/languages/rust
|
75
|
+
[crates-and-modules]: http://doc.rust-lang.org/stable/book/crates-and-modules.html
|
76
|
+
|
77
|
+
## Source
|
78
|
+
|
79
|
+
Wikipedia [http://en.wikipedia.org/wiki/Circular_buffer](http://en.wikipedia.org/wiki/Circular_buffer)
|
80
|
+
|
81
|
+
## Submitting Incomplete Solutions
|
82
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
@@ -0,0 +1,43 @@
|
|
1
|
+
# Custom Set
|
2
|
+
|
3
|
+
Create a custom set type.
|
4
|
+
|
5
|
+
Sometimes it is necessary to define a custom data structure of some
|
6
|
+
type, like a set. In this exercise you will define your own set. How it
|
7
|
+
works internally doesn't matter, as long as it behaves like a set of
|
8
|
+
unique elements.
|
9
|
+
|
10
|
+
## Rust Installation
|
11
|
+
|
12
|
+
Refer to the [exercism help page][help-page] for Rust installation and learning
|
13
|
+
resources.
|
14
|
+
|
15
|
+
## Writing the Code
|
16
|
+
|
17
|
+
Execute the tests with:
|
18
|
+
|
19
|
+
```bash
|
20
|
+
$ cargo test
|
21
|
+
```
|
22
|
+
|
23
|
+
All but the first test have been ignored. After you get the first test to
|
24
|
+
pass, remove the ignore flag (`#[ignore]`) from the next test and get the tests
|
25
|
+
to pass again. The test file is located in the `tests` directory. You can
|
26
|
+
also remove the ignore flag from all the tests to get them to run all at once
|
27
|
+
if you wish.
|
28
|
+
|
29
|
+
Make sure to read the [Crates and Modules](https://doc.rust-lang.org/stable/book/crates-and-modules.html) chapter if you
|
30
|
+
haven't already, it will help you with organizing your files.
|
31
|
+
|
32
|
+
## Feedback, Issues, Pull Requests
|
33
|
+
|
34
|
+
The [exercism/rust](https://github.com/exercism/rust) repository on GitHub is the home for all of the Rust exercises. If you have feedback about an exercise, or want to help implement new exercises, head over there and create an issue. Members of the [rust track team](https://github.com/orgs/exercism/teams/rust) are happy to help!
|
35
|
+
|
36
|
+
If you want to know more about Exercism, take a look at the [contribution guide](https://github.com/exercism/docs/blob/master/contributing-to-language-tracks/README.md).
|
37
|
+
|
38
|
+
[help-page]: http://exercism.io/languages/rust
|
39
|
+
[crates-and-modules]: http://doc.rust-lang.org/stable/book/crates-and-modules.html
|
40
|
+
|
41
|
+
|
42
|
+
## Submitting Incomplete Solutions
|
43
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|