Skip to content
Open
Show file tree
Hide file tree
Changes from 4 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
/**/.DS_Store
node_modules
node_modules/
coverage/
17 changes: 17 additions & 0 deletions bowling/.eslintrc.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
module.exports = {
"env": {
"browser": true,
"commonjs": true,
"es2021": true
},
"extends": "eslint:recommended",
"overrides": [
],
"parserOptions": {
"ecmaVersion": "latest"
},
"rules": {
"semi": ["error", "never"],
"quotes": ["error", "double"]
}
}
25 changes: 25 additions & 0 deletions bowling/frame.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
class Frame {
constructor(rolls) {
this.rolls = rolls
this.bonus = 0
}

score(){
let sum = this.rolls.reduce((acc, number) => acc + number)

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

great use of reduce

return sum + this.bonus
}

addBonus(bonus) {
this.bonus = bonus
}

isSpare(){
return this.rolls.reduce((acc, number) => acc + number) === 10
}

isStrike(){
return this.rolls[0] === 10

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nice ! terse way to write

}
}

module.exports = Frame
20 changes: 20 additions & 0 deletions bowling/main.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
const Scoreboard = require('./score')

let scorecard = new Scoreboard()

scorecard.calculateScore() // returns 0
// scorecard.addFrame(2, 5)
// scorecard.addFrame(3, 5)
// scorecard.addFrame(3, 5)
// scorecard.addFrame(3, 5)
// scorecard.addFrame(3, 5)
// scorecard.addFrame(3, 5)
// scorecard.addFrame(3, 5)
// scorecard.addFrame(3, 5)
// scorecard.addFrame(3, 5)
// scorecard.addFrame(3, 5)
// scorecard.addFrame(3, 5)
scorecard.addFrame(10)
scorecard.addFrame(10)

console.log(scorecard.calculateScore())
Loading