UNPKG

tsgammon-core

Version:

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

48 lines 2.32 kB
import { Dice } from '../Dices'; import { CheckerPlayState, CheckerPlayStateCommitted } from './CheckerPlayState'; /** * 未確定の状態のチェッカープレイを管理する:CheckerPlayでは機能追加の必要性が薄いので、 * CheckerPlayHandlerを設けず簡素な定義のままになっている */ export declare type CheckerPlayDispatcher = { doCheckerPlay: (state: CheckerPlayState, absPos: number, dices: Dice[]) => void; doRevertDices: (state: CheckerPlayState) => void; doUndo: (state: CheckerPlayState) => void; doCommitCheckerPlay: (state: CheckerPlayState) => void; doRedo: (state: CheckerPlayState) => void; }; /** * 未確定の状態のチェッカープレイによって発生するイベントの通知先 */ export declare type CheckerPlayListeners = { onCheckerPlay: (state: CheckerPlayState) => void; onRevertDices: (state: CheckerPlayState) => void; onUndo: (state: CheckerPlayState) => void; onCommitCheckerPlay: (state: CheckerPlayStateCommitted) => void; onRedo: (state: CheckerPlayState) => void; }; /** * CheckerPlayDispatcherオブジェクトを生成する * @param listeners * @returns */ export declare function checkerPlayDispatcher(listeners: CheckerPlayListeners): CheckerPlayDispatcher; /** * 任意のポイントがクリックされたとき、それに対応するムーブを決定し、 * そのムーブの適用後の局面を返す * * @param state 現局面(そこから可能な局面のツリーを含む) * @param absPos クリックされたポイントの絶対座標(=White視点の座標) * @param dices ダイス状態の配列:インデックスの小さいものを優先して使用する * @returns */ export declare function applyCheckerPlay(state: CheckerPlayState, absPos: number, dices: Dice[]): { isValid: true; state: CheckerPlayState; } | { isValid: false; }; export declare function fill(listeners: Partial<CheckerPlayListeners>): CheckerPlayListeners; export declare function decorate(base: CheckerPlayListeners, ...listeners: Partial<CheckerPlayListeners>[]): CheckerPlayListeners; export declare function setCPStateListener(setState: (state: CheckerPlayState | undefined) => void): CheckerPlayListeners; //# sourceMappingURL=CheckerPlayDispatcher.d.ts.map