{"id":18756252,"url":"https://github.com/simonberner/bowlinggame","last_synced_at":"2025-11-29T21:30:13.942Z","repository":{"id":106072833,"uuid":"183686549","full_name":"simonberner/bowlinggame","owner":"simonberner","description":"The Bowling Game Kata 🎳","archived":false,"fork":false,"pushed_at":"2019-05-16T20:12:28.000Z","size":68,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-12-29T01:58:50.500Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/simonberner.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-04-26T19:54:58.000Z","updated_at":"2020-06-03T19:53:05.000Z","dependencies_parsed_at":null,"dependency_job_id":"0dc27afe-b517-474b-9701-236ef14493ab","html_url":"https://github.com/simonberner/bowlinggame","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simonberner%2Fbowlinggame","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simonberner%2Fbowlinggame/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simonberner%2Fbowlinggame/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simonberner%2Fbowlinggame/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/simonberner","download_url":"https://codeload.github.com/simonberner/bowlinggame/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239644129,"owners_count":19673582,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-07T17:35:46.670Z","updated_at":"2025-11-29T21:30:13.855Z","avatar_url":"https://github.com/simonberner.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Bowling Game Kata\n\n## Intention\nThe intention of this small project is practicing TDD with Java by implementing the [CodeKata](http://codekata.com/) [Bowling Game](http://codingdojo.org/kata/Bowling/).\n\n## My slightly adapted bowling game description\n1. The game consists of 10 frames (rounds). In each frame a player has two rolls with a bowling ball to knock down a maximum of 10 pins. The score per frame is the total number of knocked down pins plus bonuses if the player does a spare or a strike.  \n2. A **spare** is when the player knocks down all 10 pins with two rolls in a frame. The bonus for that frame is the score of the next **first** roll.  \n2.1 The maximum score for a frame is 20. 10 scores for the spare in the actual frame and 10 for the strike in the next frame.\n3. A **strike** is when the player knocks down all 10 pins with the **first** roll in a frame. The bonus for that frame is the score of the next **two** rolls.  \n3.1 The maximum score for a frame is 30. 10 scores for the strike in the actual frame and 20 scores for the strikes of the next two frames. \n4. In the 10th frame, a player who rolls a spare or a strike has a **second** (for strike) or **third** (for spare) extra roll to finish that frame. (No more than three rolls are allowed in the 10th frame).\n\n## Information sources\n* [The bowling game kata in Java](https://speakerdeck.com/artenes/the-bowling-game-kata-in-java)\n* Uncle Bob: [The Bowling Game Kata](http://butunclebob.com/ArticleS.UncleBob.TheBowlingGameKata)\n* [Why I don't like the Bowling Game Kata](https://www.giorgiosironi.com/2009/11/why-i-dont-like-bowling-game-kata.html)\n* The Bowling Game Kata [description](http://kata-log.rocks/bowling-game-kata) ([This](https://ccd-school.de/en/coding-dojo/classes-katas/bowling/) might be the better description)\n\n## Setup a Gradle with JUnit5\n* [Getting started with Gradle](https://www.jetbrains.com/help/idea/getting-started-with-gradle.html)\n* [Setup Junit5](https://github.com/swkBerlin/kata-bootstraps/tree/master/java/junit5)\n* [JUnit5 with Gradle](https://junit.org/junit5/docs/current/user-guide/#running-tests-build-gradle)\n* [Gradle doc](https://docs.gradle.org/current/userguide/java_testing.html#compiling_and_executing_junit_jupiter_tests)\n\n## Coding Kata\n* [What is a TDD-Code Kata?](https://qualitycoding.org/tdd-kata/)\n\n## Possible constraints\nTaking [Baby Steps](http://kata-log.rocks/baby-steps)\n\n## Getting the project code\nYou can get the code by hitting:\n\n    git clone https://github.com/simonberner/bowlinggame.git\n\nOr by simply [downloading the zip](https://github.com/simonberner/bowlinggame/archive/master.zip) file.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsimonberner%2Fbowlinggame","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsimonberner%2Fbowlinggame","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsimonberner%2Fbowlinggame/lists"}