https://github.com/cookpete/poker-odds
A lightweight command line tool for calculating poker hand probabilities
https://github.com/cookpete/poker-odds
chance equity hand poker probabilities simulation texas-holdem
Last synced: about 1 year ago
JSON representation
A lightweight command line tool for calculating poker hand probabilities
- Host: GitHub
- URL: https://github.com/cookpete/poker-odds
- Owner: cookpete
- License: mit
- Created: 2018-01-30T10:40:24.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2022-12-07T00:02:07.000Z (over 3 years ago)
- Last Synced: 2025-03-31T12:05:01.513Z (about 1 year ago)
- Topics: chance, equity, hand, poker, probabilities, simulation, texas-holdem
- Language: JavaScript
- Size: 655 KB
- Stars: 172
- Watchers: 4
- Forks: 23
- Open Issues: 16
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE.md
Awesome Lists containing this project
README
# poker-odds
[](https://www.npmjs.com/package/poker-odds)
[](https://www.npmjs.com/package/poker-odds)
[](https://travis-ci.org/CookPete/poker-odds)
[](https://codecov.io/gh/CookPete/poker-odds)
[](https://paypal.me/ckpt)
A lightweight command line tool for calculating poker hand probabilities. No dependencies. No huge data files.
### Installation
```bash
# yarn
yarn global add poker-odds
# npm
npm install -g poker-odds
```
### Usage
```bash
poker-odds AcKh KdQs # any number of hands supported
# use .. for random cards, .... for a random hand
# options
-b, --board Td7s8d # community cards
-i, --iterations 1000 # number of preflop simulations to run, default: 100000
-e, --exhaustive # run all preflop simulations
-p, --possibilities # show individual hand possibilities
-n, --no-color # disable color output
-v, --version # show version
-h, --help # show help
```
Use `--board` or `-b` to define community cards.

Use `--exhaustive` or `-e` to run all preflop simulations. Note that this will take some time.

Use `--possibilities` or `-p` to show all possible hand outcomes. Hand possibilities are shown by default if only one hand is defined.

### API
The method used to calculate probabilities can be imported and used directly in a JS/node project:
```js
import { calculateEquity } from 'poker-odds'
const hands = [['As', 'Kh'], ['Kd', 'Qs']]
const board = ['Td', '7s', '8d']
const iterations = 100000 // optional
const exhaustive = false // optional
calculateEquity(hands, board, iterations, exhaustive)
```
`calculateEquity()` returns an array of hands with the results of the simulations:
```json
[
{
"hand": [
"Ac",
"Kh"
],
"count": 990,
"wins": 803,
"ties": 15,
"handChances": [
{ "name": "high card", "count": 376 },
{ "name": "one pair", "count": 479 },
{ "name": "two pair", "count": 78 },
{ "name": "three of a kind", "count": 13 },
{ "name": "straight", "count": 44 },
{ "name": "flush", "count": 0 },
{ "name": "full house", "count": 0 },
{ "name": "four of a kind", "count": 0 },
{ "name": "straight flush", "count": 0 },
{ "name": "royal flush", "count": 0 }
],
"favourite": true
},
{
"hand": [
"Kd",
"Qs"
],
"count": 990,
"wins": 172,
"ties": 15,
"handChances": [
{ "name": "high card", "count": 351 },
{ "name": "one pair", "count": 463 },
{ "name": "two pair", "count": 77 },
{ "name": "three of a kind", "count": 13 },
{ "name": "straight", "count": 41 },
{ "name": "flush", "count": 45 },
{ "name": "full house", "count": 0 },
{ "name": "four of a kind", "count": 0 },
{ "name": "straight flush", "count": 0 },
{ "name": "royal flush", "count": 0 }
],
"favourite": false
}
]
```