tsgammon-core
Version:
A Backgammon library for Typescript, formerly developed as a part of tsgammon-ui
38 lines (37 loc) • 1.27 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.toGameState = void 0;
/**
* 現局面を、GameStateオブジェクトに読み替える
* @param bgState
* @param rsState
* @returns
*/
function toGameState(bgState, rsState) {
const { cbState, sgState } = bgState;
switch (cbState.tag) {
case 'CBOpening':
return {
tag: 'GSOpening',
cubeState: cbState.cubeState,
};
case 'CBEoG':
return {
tag: 'GSEoG',
cubeState: cbState.cubeState,
isWonByResign: rsState.tag === 'RSOffered',
isWonByPass: cbState.isWonByPass,
};
default:
return {
tag: 'GSInPlay',
cubeState: cbState.cubeState,
isResignOffered: rsState.tag === 'RSOffered',
isDoubleOffered: cbState.tag === 'CBResponse',
offer: rsState.tag === 'RSOffered' ? rsState.offer : undefined,
dices: sgState.tag === 'SGInPlay' ? sgState.dices : undefined,
isRed: rsState.tag === 'RSOffered' ? rsState.isRed : cbState.isRed,
};
}
}
exports.toGameState = toGameState;