Poker equity calculator using Monte Carlo simulation (WebAssembly)
npm install @cloviz/eq-mcポーカーエクイティ計算ライブラリのWebAssembly版です。
``bash`
npm install eq_mc
または、pkg/ディレクトリを直接コピーして使用できます。
`javascript
import init, { calculate_combo_equity, calculate_range_equity } from './eq_mc.js';
// 初期化(必須)
await init();
// コンボ vs コンボ
const result1 = calculate_combo_equity("AsKs,QhQd", "Js,Ts,2c", 10000);
console.log(result1); // "0.678432,0.321568"
// レンジ vs レンジ
const result2 = calculate_range_equity(
"AsKs:1.0,AsKh:0.5|QhQd:1.0,QhQc:1.0",
"Js,Ts,2c",
10000
);
console.log(result2); // "0.543210,0.456790"
`
型定義が自動生成されています(eq_mc.d.ts)。
`typescript
import init, { calculate_combo_equity, calculate_range_equity } from './eq_mc.js';
await init();
const equities: string = calculate_combo_equity("AsKs,QhQd", "", 10000);
const parsed: number[] = equities.split(',').map(parseFloat);
`
コンボ vs コンボのエクイティを計算します。
| 引数 | 型 | 説明 |
|------|-----|------|
| combos | string | カンマ区切りのコンボ (例: "AsKs,QhQd,JcJd") |board
| | string | ボードカード (例: "Js,Ts,2c") または空文字列 |trials
| | number | シミュレーション回数 |
戻り値: カンマ区切りのエクイティ文字列 (例: "0.35,0.40,0.25")
レンジ vs レンジのエクイティを計算します。
| 引数 | 型 | 説明 |
|------|-----|------|
| ranges | string | パイプ区切りのレンジ (例: "AsKs:1.0,AsKh:0.5\|QhQd:1.0") |board
| | string | ボードカード (例: "Js,Ts,2c") または空文字列 |trials
| | number | シミュレーション回数 |
戻り値: カンマ区切りのエクイティ文字列 (例: "0.35,0.65")
- ランク: 2, 3, 4, 5, 6, 7, 8, 9, T, J, Q, K, Ac
- スート: (クラブ), d (ダイヤ), h (ハート), s (スペード)As
- 例: (スペードのエース), Td (ダイヤの10)
4文字のカード2枚: AsKs, QhQd, 7c6c
コンボ:ウェイト 形式、カンマ区切り:``
AsKs:1.0,AsKh:0.5,AhKs:0.5
複数プレイヤーはパイプ | で区切り:``
AsKs:1.0,AsKh:1.0|QhQd:1.0,QhQc:1.0
`basheq_mcディレクトリで
python3 -m http.server 8080
ビルド
`bash
wasm-pack build --target web
``