tsgammon-core
Version:
A Backgammon library for Typescript, formerly developed as a part of tsgammon-ui
27 lines (23 loc) • 760 B
text/typescript
import { BoardStateNode } from '../BoardStateNode'
import { collectNodes } from './collectNodes'
import { Move } from '../Move'
/**
* 指定された局面について、冗長な手も含めて、可能な手を全て格納した配列を返す
* @param node 局面
*/
export function collectMoves(node: BoardStateNode): Moves[] {
const nodes = collectNodes(node)
return nodes.map((n) => ({
moves: n.lastMoves(),
isRedundant: n.isRedundant,
}))
}
/**
* ある局面について、ロールを使い切る手を表す
*/
export type Moves = {
/** 指し手を表す配列 */
moves: Move[]
/** 指し手を適用した後に同じ結果になる手が他に存在するなら、true */
isRedundant: boolean
}