UNPKG

tsgammon-core

Version:

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

26 lines (25 loc) 967 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.collectNodes = void 0; /** * 指定された局面について、冗長な手も含めて、手番終了時の局面を全て格納した配列を返す。 * * 可能な手がない場合は、指定された局面だけがそのまま格納された配列が返る。 * @param node 局面 */ function collectNodes(node) { const hasUnusedDice = node.dices.find((dice) => !dice.used); if (hasUnusedDice) { const major = node.board.points .map((_, idx) => node.majorFirst(idx)) .map((node) => (node.hasValue ? collectNodes(node) : [])) .flat(); const minor = node.board.points .map((_, idx) => node.minorFirst(idx)) .map((node) => (node.hasValue ? collectNodes(node) : [])) .flat(); return minor.concat(major); } return [node]; } exports.collectNodes = collectNodes;