{"id":18137989,"url":"https://github.com/rickbutton/poker","last_synced_at":"2025-04-06T17:22:44.545Z","repository":{"id":145157305,"uuid":"8350899","full_name":"rickbutton/poker","owner":"rickbutton","description":"Poker bot for the Enova hackathon","archived":false,"fork":false,"pushed_at":"2013-02-22T06:36:43.000Z","size":240,"stargazers_count":1,"open_issues_count":0,"forks_count":3,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-12T23:29:11.291Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Objective-C","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/rickbutton.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-02-22T05:10:22.000Z","updated_at":"2018-12-11T02:49:58.000Z","dependencies_parsed_at":"2023-03-22T16:46:32.066Z","dependency_job_id":null,"html_url":"https://github.com/rickbutton/poker","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/rickbutton%2Fpoker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rickbutton%2Fpoker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rickbutton%2Fpoker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rickbutton%2Fpoker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rickbutton","download_url":"https://codeload.github.com/rickbutton/poker/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247518680,"owners_count":20951847,"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-01T15:07:55.499Z","updated_at":"2025-04-06T17:22:44.515Z","avatar_url":"https://github.com/rickbutton.png","language":"Objective-C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Enova No-Limit-Code-Em poker bot\n\nWritten by Rick Button and Scott Opell over a 5 hour hackathon at Purdue University.\n\n## How it works\n\nWe base our actions on the expected value of a call.\n\n```\np = Probability of winning that hand\nq = 1 - p\nm = Current pot size\nEV = (p * m) + (q * -call)\n```\n\nIf the EV is positive, we are likely to stay positive with that hand in the long run, so we call. If it is negative, we fold. Plain and simple.\n\nLater in the tournament, we added a more aggressive component to our algorithm. If the probability of winning a hand is greater than 50%, then we would raise using the Kelly Criterion, which is a percentage of the current stack (bankroll). It is calculated as follows.\n\n```\np = Probability of winning that hand\nb = 1 / p\nf = (p * (b + 1) - 1) / b\n```\n\nIf that value was within a certain threshold, we would play more aggressively.\n\nCredits\n\n[Scott Opell](http://github.com/scottopell) for writing the other half of the code, and doing math things.\n\nThanks to Enova for running a really fun hackathon.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frickbutton%2Fpoker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frickbutton%2Fpoker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frickbutton%2Fpoker/lists"}