/** * 副露ブーストモデル v3 * * MCシミュレーション(門前)のベースラインに対し、副露ルートのEVを推定する。 * v3改善: * 1. 段階的ポン評価(部分集合列挙)— 1ポンだけでも中間EVを反映 * 2. チー加速 — ポン後の塔子を上家チーで完成する効果を反映 * 3. 孤立牌ドラ補正 — ポン過程で切る牌のドラを打点から除外 */ import type { TileId } from "../core/tile.js"; import type { HandArray } from "../core/hand.js"; import type { GameContext } from "../scoring/types.js"; import { type FuroScoreEstimate } from "./furo-scoring.js"; export interface FuroTarget { type: "pon"; tile: TileId; adjustedProb: number; } export interface FuroAnalysis { route: "yakuhai" | "tanyao" | "honitsu" | "chinitsu" | null; targets: FuroTarget[]; furoWinRate: number; furoEV: number; furoAvgPoints: number; ponSuccessRate: number; postFuroShanten: number; postFuroAccept: number; scoreEstimate: FuroScoreEstimate | null; } export interface FuroBoostOptions { context: GameContext; remaining: HandArray; turnsLeft: number; } /** * 打牌後の13枚手牌に対して副露ブーストを分析する */ export declare function analyzeFuroBoost(hand13: HandArray, options: FuroBoostOptions): FuroAnalysis; /** * ポン後の縮小手牌のシャンテン数を計算する * * 通常シャンテン計算の式: 8 - 2*M - min(P, 4-M) [-1 if jantou] * 縮小版: 2*neededMentsu - 2*M - min(P, neededMentsu-M) [-1 if jantou] */ export declare function calculateReducedShanten(reducedHand: HandArray, neededMentsu: number): number;