UNPKG

@woosh/meep-engine

Version:

Pure JavaScript game engine. Fully featured and production ready.

97 lines 2.18 kB
export type StateType = number; export namespace StateType { let Undecided: number; let Win: number; let Loss: number; let Tie: number; let DepthCapped: number; let NoMoves: number; } /** * @template State, Action * @author Alex Goldring * @copyright Company Named Limited (c) 2025 */ export class StateNode<State, Action> { /** * How deep is the node in the tree * @type {number} */ depth: number; /** * * @type {number} */ wins: number; /** * Number of leses in the subtree of this state * @type {number} */ losses: number; /** * total number of explored playouts * @type {number} */ playouts: number; /** * * @type {number} */ heuristicValue: number; /** * parent node, previous state * @type {null|StateNode} */ parent: null | StateNode<any, any>; /** * * @type {null|MoveEdge[]} */ moves: null | MoveEdge<any>[]; /** * * @type {StateType} */ type: StateType; bubbleUpHeuristicScore(): void; /** * Aggregate heuristic score from children */ aggregateHeuristicScore(): void; /** * @param state * @param {function(State, source:StateNode):MoveEdge[]} computeValidMoves * @param computeTerminalFlag * @returns {number} number of children */ expand(state: any, computeValidMoves: any, computeTerminalFlag: any): number; /** * * @param {number} playouts * @param {number} wins * @param {number} losses */ addPlayouts(playouts: number, wins: number, losses: number): void; /** * Whenever this is a terminal state or not (win/loss) * @returns {boolean} */ isTerminal(): boolean; /** * * @returns {boolean} */ isExpanded(): boolean; /** * * @returns {MoveEdge[]} */ pickBestMoves(): MoveEdge<any>[]; /** * * @param {function(StateNode)} visitor */ traverse(visitor: (arg0: StateNode<any, any>) => any): void; } import { MoveEdge } from "./MoveEdge.js"; //# sourceMappingURL=StateNode.d.ts.map