tsgammon-core
Version:
A Backgammon library for Typescript, formerly developed as a part of tsgammon-ui
48 lines • 2.32 kB
TypeScript
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