diff --git a/docs/scorecard.js b/docs/scorecard.js index 4f09557e3..a584dfb7d 100644 --- a/docs/scorecard.js +++ b/docs/scorecard.js @@ -2,7 +2,6 @@ class Scorecard { constructor() { this.frames = [] - } calculateScore() { @@ -15,38 +14,28 @@ class Scorecard { sum += this.frameScore(currentFrame) - // Bonuses: - // when strike or spare on final frame - if (currentFrame === this.frames[10]) { - sum -= this.frameScore(currentFrame); - } - // when strike - else if (currentFrame.length < 2 && nextFrame.length === 2) { - sum += this.addStrikeBonus(nextFrame); - - } - // when strikes in a row - else if (currentFrame.length < 2 && nextFrame.length < 2) { - sum += this.addStrikesInARowBonus(nextFrame, nextNextFrame); - - } - // when spare - else if (this.frameScore(currentFrame) === 10 && currentFrame.length === 2 ) { - sum += nextFrame[0]; - } + if (currentFrame === this.frames[10]) { + sum -= this.frameScore(currentFrame); + } + else if (currentFrame.length < 2 && nextFrame.length === 2) { + sum += this.addStrikeBonus(nextFrame); + } + else if (currentFrame.length < 2 && nextFrame.length < 2) { + sum += this.addStrikesInARowBonus(nextFrame, nextNextFrame); + } + else if (this.frameScore(currentFrame) === 10 && currentFrame.length === 2 ) { + sum += nextFrame[0]; + } } return sum; - - } addFrame(roll1, roll2) { if (roll1 < 10) { this.frames.push([roll1, roll2]); - // adds bonus rolls as frame if frame 10 is a strike or spare } else if (roll1 === 10 && this.frames.length === 10) { - this.frames.push([roll1, roll2]); + this.frames.push([roll1, roll2]); } else if (roll1 === 10 ) { this.frames.push([roll1]); } diff --git a/tests/scorecard.test.js b/tests/scorecard.test.js index 7840bdd32..30162ad84 100644 --- a/tests/scorecard.test.js +++ b/tests/scorecard.test.js @@ -2,7 +2,7 @@ const Scorecard = require('../docs/scorecard'); describe('Scorecard', () => { it('adds the scores when no bonus points', () => { - let scorecard = new Scorecard() + let scorecard = new Scorecard(); expect(scorecard.calculateScore()).toEqual(0) scorecard.addFrame(2, 5) @@ -12,7 +12,7 @@ describe('Scorecard', () => { }) it('adds bonus points when strike', () => { - let scorecard = new Scorecard() + let scorecard = new Scorecard(); scorecard.addFrame(10, 0) scorecard.addFrame(2, 2) @@ -21,7 +21,7 @@ describe('Scorecard', () => { }) it('adds bonus points when two strikes in a row', () => { - let scorecard = new Scorecard() + let scorecard = new Scorecard(); scorecard.addFrame(10, 0) scorecard.addFrame(10, 0) @@ -31,7 +31,7 @@ describe('Scorecard', () => { }) it('adds bonus points for spare', () => { - let scorecard = new Scorecard() + let scorecard = new Scorecard(); scorecard.addFrame(1, 9) scorecard.addFrame(1, 3) @@ -39,8 +39,8 @@ describe('Scorecard', () => { }) - it('adds up to 0 for gutter game', () => { - let scorecard = new Scorecard() + it('adds to 0 for gutter game', () => { + let scorecard = new Scorecard(); scorecard.addFrame(0, 0) scorecard.addFrame(0, 0) @@ -57,8 +57,8 @@ describe('Scorecard', () => { }) - it('adds up to 300 because perfect score', () => { - let scorecard = new Scorecard() + it('adds up to 300 for perfect score', () => { + let scorecard = new Scorecard(); scorecard.addFrame(10, 0) scorecard.addFrame(10, 0) @@ -77,7 +77,7 @@ describe('Scorecard', () => { }) it('allows bonus points for spare on final frame', () => { - let scorecard = new Scorecard() + let scorecard = new Scorecard(); scorecard.addFrame(10, 0) scorecard.addFrame(10, 0) @@ -96,7 +96,7 @@ describe('Scorecard', () => { }) it('allows bonus points for spare on final frame', () => { - let scorecard = new Scorecard() + let scorecard = new Scorecard(); scorecard.addFrame(1, 4) scorecard.addFrame(4, 5)