tsgammon-core
Version:
A Backgammon library for Typescript, formerly developed as a part of tsgammon-ui
68 lines • 3.26 kB
TypeScript
import { MatchStateEoG, MatchStateInPlay } from '../MatchState';
import { GameConf } from '../GameConf';
import { GameRecordEoG, GameRecordInPlay } from './GameRecord';
import { PlyRecordEoG, PlyRecordInPlay } from './PlyRecord';
/**
* マッチ全体の記録
* @template T 手番に紐づけて保持される、局面を表す任意のオブジェクトの型
*/
export declare type MatchRecord<T> = MatchRecordInPlay<T> | MatchRecordEoG<T>;
declare type _MatchRecord<T> = {
/** ルールなど、ゲームの設定 */
conf: GameConf;
/** すでに終局したゲームの記録 */
gameRecords: GameRecordEoG<T>[];
};
export declare type MatchRecordInPlay<T> = _MatchRecord<T> & {
isEoG: false;
matchState: MatchStateInPlay;
/** 現ゲームの記録:すなわち、現在進行中、または最後に終局したゲームの記録 */
curGameRecord: GameRecordInPlay<T>;
};
export declare type MatchRecordEoG<T> = _MatchRecord<T> & {
isEoG: true;
matchState: MatchStateEoG;
/** 現ゲームの記録:すなわち、現在進行中、または最後に終局したゲームの記録 */
curGameRecord: GameRecordEoG<T>;
};
export declare function matchRecordInPlay<T>(conf: GameConf | undefined, matchState: MatchStateInPlay): MatchRecordInPlay<T>;
/**
* 現在の記録について、一手番分の記録を追加して返す
*
* @param matchRecord 現在の記録
* @param plyRecord 追加される手番の記録
* @param state 手番に紐づけて記録される、局面の状態を示す任意のオブジェクト
* @returns 更新後の記録
*/
export declare function addPlyRecord<T>(matchRecord: MatchRecordInPlay<T>, plyRecord: PlyRecordInPlay, state: T): MatchRecordInPlay<T>;
/**
* 現在の記録について、現ゲームの記録をリセットして返す
*
* 現ゲームが終局していれば、すでに終局したゲームの記録に追加する。そうでなければ破棄する。
*
* ※ 現ゲームが終局しても、画面表示上は終局状態として現ゲームの記録が必要なので、
* 終局の記録{@link eogRecord}と現ゲームの記録のリセットとで処理を分けている。
*
* @param matchRecord 現在の記録
* @returns 更新後の記録
*/
export declare function recordFinishedGame<T>(matchRecord: MatchRecordEoG<T>): MatchRecord<T>;
export declare function discardCurrentGame<T>(matchRecord: MatchRecordInPlay<T>): MatchRecordInPlay<T>;
/**
* 現在の記録について、任意の手番に復帰し、それ以降の手番の記録を破棄して返す
* @param matchRecord 現在の記録
* @param index 復帰先となる手番
* @returns 更新後の記録
*/
export declare function trimPlyRecords<T>(matchRecord: MatchRecord<T>, index: number): MatchRecordInPlay<T>;
/**
* 現在の記録について、現ゲームの記録に終局の記録を追加して返す
*
* @param matchRecord 現在の記録
* @param eogMatchState 終局時のMatchState
* @param eogRecord 終局の記録
* @returns 更新後の記録
*/
export declare function eogRecord<T>(matchRecord: MatchRecordInPlay<T>, eogRecord: PlyRecordEoG): MatchRecordEoG<T>;
export {};
//# sourceMappingURL=MatchRecord.d.ts.map