UNPKG

@nodots-llc/backgammon-ai

Version:

AI and integration for nodots-backgammon using gnubg as a backend engine.

78 lines 2.67 kB
import { BackgammonMoves, BackgammonMoveCompleted } from './move'; import { BackgammonPlayer, BackgammonPlayerMoving, BackgammonPlayerRolled, BackgammonPlayerRolling } from './player'; import { BackgammonBoard } from './board'; import { BackgammonCube } from './cube'; import { BackgammonMoveOrigin } from './checkercontainer'; export type BackgammonPlayResult = { board: BackgammonBoard; play: BackgammonPlay; move: BackgammonMoveCompleted; }; export type BackgammonPlayStateKind = 'rolling' | 'rolled' | 'moving' | 'moved' | 'confirmed'; interface BasePlay { id: string; player: BackgammonPlayer; board: BackgammonBoard; moves?: BackgammonMoves; } interface Play extends BasePlay { stateKind: BackgammonPlayStateKind; } export type BackgammonPlayRolling = Play & { stateKind: 'rolling'; player: BackgammonPlayerRolling; }; export type BackgammonPlayRolled = Play & { stateKind: 'rolled'; player: BackgammonPlayerRolled; moves: BackgammonMoves; }; export type BackgammonPlayDoubled = Play & { stateKind: 'doubled'; }; export type BackgammonPlayMoving = Play & { stateKind: 'moving'; player: BackgammonPlayerMoving; moves: BackgammonMoves; }; export type BackgammonPlayMoved = Play & { stateKind: 'moved'; player: BackgammonPlayer; }; export type BackgammonPlayConfirmed = Play & { stateKind: 'confirmed'; player: BackgammonPlayer; }; export type BackgammonPlay = BackgammonPlayRolling | BackgammonPlayRolled | BackgammonPlayDoubled | BackgammonPlayMoving | BackgammonPlayMoved | BackgammonMoveCompleted; export type BackgammonRollResults = { player: BackgammonPlayerRolled; activePlay: BackgammonPlayRolled; }; export type BackgammonPlayResults = { board: BackgammonBoard; play: BackgammonPlay; }; export interface PlayProps { id?: string; cube?: BackgammonCube; stateKind?: BackgammonPlayStateKind; moves?: BackgammonMoves; board: BackgammonBoard; player: BackgammonPlayerRolling | BackgammonPlayerMoving; } export interface PlayClass { id?: string; cube?: BackgammonCube; stateKind?: BackgammonPlayStateKind; moves?: BackgammonMoves; board: BackgammonBoard; player: BackgammonPlayerRolling | BackgammonPlayerRolled | BackgammonPlayerMoving; initialize: (board: BackgammonBoard, player: BackgammonPlayerRolled) => BackgammonPlayRolled; move: (board: BackgammonBoard, play: BackgammonPlayRolled | BackgammonPlayMoving, origin: BackgammonMoveOrigin) => { play: BackgammonPlayMoving; board: BackgammonBoard; move: BackgammonMoveCompleted; }; } export {}; //# sourceMappingURL=play.d.ts.map