tracks/javascript/exercises/bowling/README.md in trackler-2.2.1.94 vs tracks/javascript/exercises/bowling/README.md in trackler-2.2.1.95
- old
+ new
@@ -1,24 +1,34 @@
# Bowling
Score a bowling game.
-Bowling is game where players roll a heavy ball to knock down pins
+Bowling is a game where players roll a heavy ball to knock down pins
arranged in a triangle. Write code to keep track of the score
of a game of bowling.
## Scoring Bowling
-A game consists of 10 frames. A frame is composed of one or two balls thrown, with 10 pins standing at the start of the frame. There are three cases for the tabulation of a frame:
+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.
-* 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 after the second throw.
+* 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.
-* A spare is where all 10 pins are knocked down after the second throw. The total value of a spare is 10 plus the number of pins knocked down in the next throw.
+* A spare is where all ten pins are knocked down by the second
+ throw. The total value of a spare is 10 plus the number of pins
+ knocked down in their next throw.
-* A strike is where all 10 pins are knocked down after the first throw. The total value of a strike is 10 plus the number of pins knocked down in the next two throws. If a strike is immediately followed by another strike, then the first strike's value cannot be totalled until the next throw.
+* A strike is where all ten pins are knocked down by the first
+ throw. The total value of a strike is 10 plus the number of pins
+ knocked down in the next two throws. If a strike is immediately
+ followed by a second strike, then the value of the first strike
+ cannot be determined until the ball is thrown one more time.
-Here is a three-frame example:
+Here is a three frame example:
| Frame 1 | Frame 2 | Frame 3 |
| :-------------: |:-------------:| :---------------------:|
| X (strike) | 5/ (spare) | 9 0 (open frame) |
@@ -28,15 +38,19 @@
Frame 3 is (9 + 0) = 9
This means the current running total is 48.
-The 10th frame in the game is a special case. If the player throws a strike or a spare, then they get one extra throw called 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.
+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.
-For a 10th frame of X1/ (strike and a spare), the total value is 20.
+For a tenth frame of X1/ (strike and a spare), the total value is 20.
-For a 10th frame of XXX (three strikes), the total value is 30.
+For a tenth frame of XXX (three strikes), the total value is 30.
## Requirements
Write code to keep track of the score of a game of bowling. It should
support two operations:
@@ -46,29 +60,32 @@
* `score() : int` is called only at the very end of the game. It
returns the total score for that game.
## Setup
-Go through the setup instructions for JavaScript to
-install the necessary dependencies:
+Go through the setup instructions for JavaScript to install the
+ necessary dependencies:
http://exercism.io/languages/javascript/installation
-## Making the Test Suite Pass
+## Running the test suite
-Execute the tests with:
+The provided test suite uses [Jasmine](https://jasmine.github.io/).
+You can install it by opening a terminal window and running the
+following command:
- jasmine <exercise-name>.spec.js
+```sh
+npm install -g jasmine
+```
-Replace `<exercise-name>` with the name of the current exercise. E.g., to
-test the Hello World exercise:
+Run the test suite from the exercise directory with:
- jasmine hello-world.spec.js
+```sh
+jasmine bowling.spec.js
+```
-In many test suites all but the first test have been skipped.
-
-Once you get a test passing, you can unskip the next one by
-changing `xit` to `it`.
+In many test suites all but the first test have been marked "pending".
+Once you get a test passing, activate the next one by changing `xit` to `it`.
## Source
The Bowling Game Kata at but UncleBob [http://butunclebob.com/ArticleS.UncleBob.TheBowlingGameKata](http://butunclebob.com/ArticleS.UncleBob.TheBowlingGameKata)