UNPKG

goban

Version:

[![License: Apache-2.0](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0) [![Ask DeepWiki](https://deepwiki.com/badge.svg)](https://deepwiki.com/online-go/goban)

38 lines (37 loc) 1.85 kB
import { JGOFNumericPlayerColor, JGOFIntersection } from "./formats/JGOF"; /** A raw stone string is simply an array of intersections */ export type RawStoneString = Array<JGOFIntersection>; /** * A StoneString instance represents a group of intersections that * are connected to each other and are all the same color. */ export declare class StoneString { readonly intersections: Array<JGOFIntersection>; readonly neighbors: Array<StoneString>; readonly color: JGOFNumericPlayerColor; readonly id: number; territory_color: JGOFNumericPlayerColor; is_territory: boolean; private __added_neighbors; private neighboring_space; private neighboring_stone_strings; constructor(id: number, color: JGOFNumericPlayerColor); map(fn: (loc: JGOFIntersection) => void): void; foreachNeighboringString(fn: (stone_string: StoneString) => void): void; foreachNeighboringEmptyString(fn: (stone_string: StoneString) => void): void; foreachNeighboringStoneString(fn: (stone_string: StoneString) => void): void; size(): number; /** Add a stone to the group. This should probably only be called by StoneStringBuilder. */ _addStone(x: number, y: number): void; /** Adds a stone string to our neighbor list. This should probably only be called by StoneStringBuilder. */ _addNeighborGroup(group: StoneString): void; /** * Compute if this string is considered potential territory (if all of it's * neighbors are the same color). NOTE: This does not perform any advanced * logic to determine seki status or anything like that, this only looks to * see if the string contains EMPTY locations and that all of the * surrounding neighboring are the same color. This should probably only * be called by StoneStringBuilder. */ _computeIsTerritory(): void; }