tsgammon-core
Version:
A Backgammon library for Typescript, formerly developed as a part of tsgammon-ui
73 lines (72 loc) • 2.04 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.plyRecordForPass = exports.plyRecordForTake = exports.plyRecordForDouble = exports.plyRecordForEoG = exports.plyRecordForCheckerPlay = void 0;
const SGResult_1 = require("./SGResult");
/**
* チェッカープレイの記録を生成する
* @param ply チェッカープレイ
* @returns 手番の記録
*/
function plyRecordForCheckerPlay(ply) {
return {
tag: 'Commit',
ply,
isRed: ply.isRed,
};
}
exports.plyRecordForCheckerPlay = plyRecordForCheckerPlay;
/**
* 終局の記録を生成する
*
* @param stake 終局による得点
* @param sgResult 勝者
* @param eogStatus 終局状態
* @returns 終局の記録
*/
function plyRecordForEoG(stake, sgResult, eogStatus) {
return {
tag: 'EOG',
stake,
sgResult,
eogStatus,
};
}
exports.plyRecordForEoG = plyRecordForEoG;
/**
* ダブルの記録を生成する
* @param cubeState キューブの状態(ダブル前)
* @param isRed 赤からのダブルならtrue
* @returns ダブルの記録
*/
function plyRecordForDouble(cubeState, isRed) {
return {
tag: 'Double',
cubeValue: cubeState.doubledValue,
isRed,
};
}
exports.plyRecordForDouble = plyRecordForDouble;
/**
* テイクの記録を生成する
* @param isRed 赤がテイクした(ダブルしたのは白)のであればtrue
* @returns テイクの記録
*/
function plyRecordForTake(isRed) {
return {
tag: 'Take',
isRed,
};
}
exports.plyRecordForTake = plyRecordForTake;
/**
* パスの記録を生成する
* @param sgResult 勝者(ダブルした側)
* @returns パスの記録:isRedは、赤がパスした場合にtrueが設定される。
*/
function plyRecordForPass(sgResult) {
return {
tag: 'Pass',
isRed: sgResult === SGResult_1.SGResult.WHITEWON, // 白勝ち=パスをしたのは赤
};
}
exports.plyRecordForPass = plyRecordForPass;