UNPKG

@nodots-llc/backgammon-types

Version:
85 lines 2.78 kB
import { BackgammonChecker } from './checker'; import { BackgammonBoard } from './board'; import { BackgammonCheckerContainerImport } from './import'; import { BackgammonMoveDirection } from './game'; import { IntegerRange } from './generics'; type BarPosition = 'bar'; type OffPosition = 'off'; interface BackgammonPointPosition { clockwise: BackgammonPointValue; counterclockwise: BackgammonPointValue; } export type BackgammonCheckerContainerPosition = BackgammonPointPosition | BarPosition | OffPosition; type CheckerContainerKind = 'point' | 'bar' | 'off'; export type BackgammonCheckerContainer = { id: string; kind: CheckerContainerKind; position: BackgammonCheckerContainerPosition; checkers: BackgammonChecker[]; }; export interface BackgammonPoint extends BackgammonCheckerContainer { kind: 'point'; position: { clockwise: BackgammonPointValue; counterclockwise: BackgammonPointValue; }; } export interface BackgammonBar extends BackgammonCheckerContainer { kind: 'bar'; direction: BackgammonMoveDirection; position: BarPosition; } export type BackgammonBarContainer = { [direction in BackgammonMoveDirection]: BackgammonBar; }; export interface BackgammonOff extends BackgammonCheckerContainer { kind: 'off'; direction: BackgammonMoveDirection; position: OffPosition; } export type BackgammonOffContainer = { [direction in BackgammonMoveDirection]: BackgammonOff; }; export type BackgammonPointValue = IntegerRange<1, 24>; export type BackgammonPoints = [ BackgammonPoint, BackgammonPoint, BackgammonPoint, BackgammonPoint, BackgammonPoint, BackgammonPoint, BackgammonPoint, BackgammonPoint, BackgammonPoint, BackgammonPoint, BackgammonPoint, BackgammonPoint, BackgammonPoint, BackgammonPoint, BackgammonPoint, BackgammonPoint, BackgammonPoint, BackgammonPoint, BackgammonPoint, BackgammonPoint, BackgammonPoint, BackgammonPoint, BackgammonPoint, BackgammonPoint ]; export type BackgammonMoveOrigin = BackgammonPoint | BackgammonBar; export type BackgammonMoveDestination = BackgammonPoint | BackgammonOff; export interface CheckercontainerClass { getCheckercontainers: (board: BackgammonBoard) => BackgammonCheckerContainer[]; getCheckercontainer: (board: BackgammonBoard, id: string) => BackgammonCheckerContainer; buildBar: (boardImport: BackgammonCheckerContainerImport[]) => { clockwise: BackgammonBar; counterclockwise: BackgammonBar; }; buildOff: (boardImport: BackgammonCheckerContainerImport[]) => { clockwise: BackgammonOff; counterclockwise: BackgammonOff; }; } export {}; //# sourceMappingURL=checkercontainer.d.ts.map