UNPKG

tsgammon-core

Version:

A Backgammon library for Typescript, formerly developed as a part of tsgammon-ui

42 lines (41 loc) 1.11 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.cube = exports.CubeOwner = void 0; /** * キューブの所有者を表す */ var CubeOwner; (function (CubeOwner) { CubeOwner[CubeOwner["WHITE"] = 1] = "WHITE"; CubeOwner[CubeOwner["RED"] = 2] = "RED"; })(CubeOwner = exports.CubeOwner || (exports.CubeOwner = {})); /** * 新たにCubeを生成する * * @param value キューブの値 * @param owner キューブの所有者 * @param max キューブの最大値 * @returns */ function cube(value, owner, max = 512) { const isMax = max <= value; const doubledValue = isMax ? value : (value * 2); return { value, owner, max, isMax, double(newOwner) { return cube(doubledValue, newOwner, max); }, doubledValue, mayDoubleFor(side) { return mayDoubleFor(isMax, owner, side); }, }; } exports.cube = cube; // ダブルできるかどうか function mayDoubleFor(isMax, owner, side) { return !isMax && (owner === undefined || owner === side); }