{"id":16337995,"url":"https://github.com/pierrer/afgame","last_synced_at":"2025-11-02T17:30:36.324Z","repository":{"id":6367202,"uuid":"7604526","full_name":"PierreR/afgame","owner":"PierreR","description":"Implementation of an african bowling game in several languages","archived":false,"fork":false,"pushed_at":"2016-07-06T10:00:36.000Z","size":92,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-02-17T19:52:39.870Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Haskell","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/PierreR.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}},"created_at":"2013-01-14T13:14:28.000Z","updated_at":"2016-07-06T08:53:34.000Z","dependencies_parsed_at":"2022-09-09T21:20:13.446Z","dependency_job_id":null,"html_url":"https://github.com/PierreR/afgame","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/PierreR%2Fafgame","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PierreR%2Fafgame/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PierreR%2Fafgame/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PierreR%2Fafgame/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/PierreR","download_url":"https://codeload.github.com/PierreR/afgame/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239399828,"owners_count":19632022,"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-10-10T23:48:52.273Z","updated_at":"2025-11-02T17:30:36.259Z","avatar_url":"https://github.com/PierreR.png","language":"Haskell","funding_links":[],"categories":[],"sub_categories":[],"readme":"Description\n===========\n\nImplementation in several languages of the african bowling game.\n\nThe sole purpose is to try out different languages with a basic use cases.\n\n\nSpecifications\n==============\n\nRecent research in the field of African archeology have uncovered the rules of an ancient game whose\nrules here follow (strangely similar to bowling!)\n\n* Players must throw a piece of wood in the direction of 15 bowling pins and try to shoot up. For\neach player, the game breaks down into 5 frames being composed of 3 shots. After each\nframe, the pins are straightened.\n* In one frame, if all 3 shots failed to shoot down all the pins, the pins are counted for each\nlaunch.\n* If all the pins are shot with the first launch of a frame, it is a strike. If all pins are knocked down,\nafter the 2nd or 3rd run, it is a spare.\n* A spare earns 15 points plus the points for the next 2 shots, or maximum 45 if the following 2\nshots are strikes.\n* A strike earns 15 points plus the points for the next 3 shots, or maximum 60 if the following 3\nshots are strikes.\n* During a strike or a spare in last frame, the player can make extra shots to allow the calculation\nof points in the last frame. The fifth frame may be composed of up to four shots.\n\nOptional rules\n==============\n\n* What we mean by earning the points for the next 2 or 3 shots is not really explicit.\n  In general, the current implementations has choosen to account the number of pins knocked down by a shot,\n  not the score of the shot (for instance, if the next shot is a strike, 15 is accounted, not 15 + the next\n  two shots).\n* The maximum score is 300, also known as a perfect game.\n\n\nImplementation History\n======================\n\n1. Javascript\n2. Python\n3. Google Go\n4. Clojure\n5. Haskell\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpierrer%2Fafgame","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpierrer%2Fafgame","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpierrer%2Fafgame/lists"}