Use @pokertools/engine and evaluator for poker rules and hand ranking
Replace the hand-rolled betting rules, side pots, showdown and hand evaluator with the published @pokertools/engine and @pokertools/evaluator libraries (MIT, pinned to 2.1.0). - server/hand.js now wraps a PokerEngine per hand: it maps seats, mirrors stacks, staggers the all-in runout, and pays host-chosen winners on cash-only tables. - server/cards.js and server/ai.js use the library evaluator. - Out-of-turn folds go through the engine's stand; all-in hands stay live when the player leaves; uncalled bets return to a leaver. - The engine refuses some check-able folds that would leave a side pot without eligible players; those now return a message (or check for a leaving player) instead of crashing. - BB must be greater than SB (engine requirement); Node >= 24. - Tests rig cards via engine snapshots and cover the new edge cases. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
02c8e76237
commit
d92953a270
9 files changed
+410
-382
No files matched your search
@@ -60,7 +60,7 @@
|
||||
const bb = int(bbInput);
|
||||
const on = timerInput.checked;
|
||||
intervalInput.disabled = !on;
|
||||
scheduleEl.hidden = !on || !(sb > 0 && bb >= sb);
|
||||
scheduleEl.hidden = !on || !(sb > 0 && bb > sb);
|
||||
if (scheduleEl.hidden) return;
|
||||
const mins = int(intervalInput) > 0 ? int(intervalInput) : 0;
|
||||
scheduleEl.innerHTML = Blinds.schedule(sb, bb, 8)
|
||||
@@ -119,7 +119,7 @@
|
||||
if (!name) return [nameInput, 'テーブル名を入力してください'];
|
||||
if (!(stack >= 10)) return [stackInput, '開始スタックは10以上の整数にしてください'];
|
||||
if (!(sb >= 1)) return [sbInput, 'SBは1以上の整数にしてください'];
|
||||
if (!(bb >= sb)) return [bbInput, 'BBはSB以上にしてください'];
|
||||
if (!(bb > sb)) return [bbInput, 'BBはSBより大きくしてください'];
|
||||
if (bb > stack) return [bbInput, 'BBが開始スタックより大きいです'];
|
||||
if (timerInput.checked && !(interval >= 1 && interval <= 240)) return [intervalInput, 'インターバルは1〜240分にしてください'];
|
||||
return null;
|
||||
|
||||
Reference in new issue
Block a user