UNPKG

tsgammon-core

Version:

A Backgammon library for Typescript, formerly developed as a part of tsgammon-ui

125 lines 4.51 kB
import { CubeState } from './CubeState'; import { StakeConf } from './StakeConf'; import { EOGStatus } from './EOGStatus'; import { Score } from './Score'; /** * マッチ中のスコア他、クロフォードの有無などの状況を表す型 */ export declare type MatchState = MatchStateInPlay | MatchStateEoG; declare type _MatchState = { /** * マッチの長さ、0の場合は無制限 */ matchLength: number; /** * ゲーム開始時点でのスコア */ scoreBefore: Score; /** * 現時点(ゲーム進行中)、または更新後(ゲーム終了後)のスコア */ score: Score; /** * スコアに関するルール設定 */ stakeConf: StakeConf; /** * 進行中、または直前に終了したゲームがクロフォードゲームならtrue */ isCrawford: boolean; }; /** * ゲームが進行中の時のスコアを表す型 */ export declare type MatchStateInPlay = _MatchState & { isEoG: false; }; /** * ゲームが終了した時点で、その前後のスコアを表す型 */ export declare type MatchStateEoG = _MatchState & { isEoG: true; /** * ゲームにより獲得した点数 */ stake: Score; /** * 終了後のスコア */ scoreAfter: Score; /** * 終局状態 */ eogStatus: EOGStatus; /** * マッチが決着しているならtrue */ isEoM: boolean; /** * 次ゲームがクロフォードゲームならtrue */ isCrawfordNext: boolean; }; /** * 無制限のマッチゲームを開始する * * @param scoreBefore 開始時点での両プレイヤーのスコア * @param jacobyRule ジャコビールールを適用する場合はtrue * @returns */ export declare function matchStateForUnlimitedMatch(scoreBefore?: Score, jacobyRule?: boolean): MatchStateInPlay; /** * ポイントマッチを開始する。 * * @param matchLength マッチの長さ * @param scoreBefore 開始時点での両プレイヤーのスコア * @param isCrawford 次ゲームをクロフォードとするならtrue。スコアとマッチの長さについてのチェックは行わない * @returns */ export declare function matchStateForPointMatch(matchLength: number, scoreBefore?: Score, isCrawford?: boolean): MatchStateInPlay; /** * 現在のマッチ状態で、isRedで指定されたプレイヤーについてキューブアクション可能かどうかを返す * * @param matchState マッチの状況 * @param cubeValue キューブの値 * @param isRed Redについて確認するならtrue / Whiteならfalse * @returns */ export declare function shouldSkipCubeAction(matchState: MatchState, cubeValue: number, isRed: boolean): boolean; /** * 現在のマッチの状態で、キューブが最大値に達しているかどうかをキューブの状態から判定する(したがって、クロフォードは影響しない)。 * * shouldSkipCubeAction()とは、プレイヤーの指定を必要としないことと、クロフォードを含めない点で異なっている。 * * (これは、キューブが使えない理由があるのはキューブ状態かクロフォードルールかを呼び出し側で把握するために判定から除外した)。 * * @param matchState マッチの状態 * @param cubeState キューブの状態 * @returns */ export declare function isCubeMaxForMatch(matchState: MatchState, cubeState: CubeState): boolean; /** * ゲーム終了時のマッチ状態を生成する * @param matchState マッチ状態 * @param stake 獲得したスコア * @param eogStatus 終局状態 * @returns */ export declare function matchStateEoG(matchState: MatchState, stake: Score, eogStatus: EOGStatus): MatchStateEoG; /** * 終局時のマッチ状態から、終局直前のマッチ状態を生成する。 * * これは、記録を遡って再開する時、終局状態を解除するために使用している。 * * @param matchState 終局時のマッチ状態 * @returns */ export declare function matchStateLastGame(matchState: MatchStateEoG): MatchStateInPlay; /** * 終局時のマッチ状態から、次のゲームを開始したマッチ状態を生成する * @param matchState 終局時のマッチ状態 * @returns */ export declare function matchStateNewGame(matchState: MatchStateEoG): MatchStateInPlay; export {}; //# sourceMappingURL=MatchState.d.ts.map